2014-06-17 8 views
6

पर्ल कोड:गतिशील चर मूल्य?

my %config = (
    randValue => int(rand(10)), 
); 

print $config{ randValue }."\n"; 
print $config{ randValue }."\n"; 

का उत्पादन करेगा:

8 
8 

यह अलग मूल्य हर बार प्राप्त करने के लिए संभव है?

उत्तर

10

आप tied hash, या समारोह का उपयोग कर सकते (int(rand(10)) हर बार $config{ randValue } कहा जाता है निष्पादित):

my %config = (
    randValue => sub { int(rand(10)) }, 
); 

print $config{randValue}->(); 
print $config{randValue}->(); 
+4

आप * जादू * या उप उपयोग कर सकते हैं। 'टाई' सिर्फ एक तरह का जादू है। 'वैरिएबल :: मैजिक क्यूवी (विज़ार्ड कास्ट) का उपयोग करें; कास्ट (मेरा $ डी 10, विज़ार्ड (get => सब {$ {$ _ [0]} = int (रैंड (10)) + 1})); 'मैं उप का उपयोग करने की सलाह देता हूं। – ikegami

+5

मैं बस उस दस्तावेज को पढ़ने के कार्यालय में हंसी में फूट गया: "ए 'जादूगर', एक अपारदर्शी वस्तु जिसमें जादू की जानकारी है" और "ध्यान दें कि वैश्विक जादू के दौरान मुफ्त जादू कभी नहीं बुलाया जाता है" किसी भी फंतासी सेटिंग में भयानक उद्धरण और " यदि आप मुफ्त जादू के साथ एक जादूगर को परिभाषित करते हैं और इसे स्वयं पर डालते हैं, तो इसका परिणाम स्मृति चक्र होता है, इसलिए विज़ार्ड को मुक्त होने पर यह विनाशक नहीं कहा जाएगा। " एक महाकाव्य क्वेस्ट के लिए बैकस्ट्रीरी की तरह लगता है। – DeVadder

संबंधित मुद्दे