मैं अपनी पर्ल स्क्रिप्ट में Getopt::Std का उपयोग करके कमांड लाइन से मूल्य एकत्र करने का प्रयास कर रहा हूं।मैं Getopt :: Std का उपयोग कर डिफ़ॉल्ट मान कैसे सेट कर सकता हूं?
use Getopt::Std;
$Getopt::Std::STANDARD_HELP_VERSION = 1;
getopts('i:o:p:');
my $inputfile = our $opt_i;
my $outputfile = our $opt_o;
my $parameter_value = our $opt_p;
यहाँ पहले दो चर ($ inputfile, $ outputfile) अनिवार्य हैं, लेकिन पिछले चर ($ parameter_value) वैकल्पिक है और ध्यान नहीं दिया जा सकता है।
मैं डिफ़ॉल्ट चर ($ पैरामीटर_value) पर डिफ़ॉल्ट रूप से कुछ मान सेट करने का प्रयास कर रहा हूं, जब -p
ध्वज कमांड लाइन पर अनदेखा किया जाता है।
my $parameter_value = our $opt_p || "20";
यहाँ अपने पास सही मान जब -p झंडा आदेश पंक्ति पर ध्यान नहीं दिया जाता है:
मैं इस का उपयोग कर की कोशिश की। लेकिन समस्या तब होती है जब मैं कमांड लाइन से कुछ मूल्य प्रदान कर रहा हूं (उदाहरण के लिए -पी 58), वही मान 20 58 के बजाय कार्यक्रम में पास किया गया है जिसे मैं कमांड लाइन से पास करता हूं।
क्या आप यहां दी गई गलतियों को इंगित करके मेरी मदद कर सकते हैं?
धन्यवाद।
अच्छा एक :) = +1 – DVK
थेंक्स सिनन, यह बहुत अच्छा काम करता है और मेरे कोडिंग के प्रारूप को बरकरार रखता है। Thanx एक टन। – Suren
यदि आप 5.10+ का उपयोग कर रहे हैं तो '||' के बजाय '//' का उपयोग करना बेहतर होगा क्योंकि सत्य के लिए बाद के परीक्षण, परिभाषित-नस्ल नहीं हैं। यह आपको झूठे मूल्यों (उदा। 0) में पारित होने में सक्षम होने से रोक देगा। 5.10 से पहले समकक्ष व्यवहार प्राप्त करने का लंबा हवादार तरीका 'x x = परिभाषित $ y है? $ y: Z' जहां 'Z' डिफ़ॉल्ट मान है। –