मैं कुछ पर्ल कर रहा हूं और अपना घोंसला देख रहा हूं "अगर" कथन मुझे पागल कर रहा है। मैंने उनमें से कुछ को दूसरे खंड में गार्ड ब्लॉक के साथ कम करने में कामयाब रहे, लेकिन मैं यहां फंस गया हूं।क्या मुझे पर्ले में बयान देते हुए घोंसला से बचना चाहिए?
क्या आपको लगता है कि मैं कोड छोड़ सकता हूं, या क्या निम्नलिखित को दोबारा करने का एक "उचित" तरीका है? (मैं पर्ल के लिए अपेक्षाकृत नया मानता हूं)
यह वास्तव में एक सबराउटिन है जो सूची (बाहरी फ़ाइल) के प्रत्येक पैरामीटर पर उपयोगकर्ता इनपुट मांगता है। $ [3] मिलान पैटर्न है, $ [2] माना गया पैरामीटर (NULL यदि कोई नहीं है) के लिए डिफ़ॉल्ट मान है, $ _ [1] निर्दिष्ट करता है कि यह अनिवार्य है या नहीं। 'अगला' कथन अगले पैरामीटर को पढ़ता है (जबकि लूप)।
हर किसी की मदद से (धन्यवाद!), यहां नवीनतम संस्करण है।
100 if ($input ne '' && ($input !~ $match || $input =~ /'.+'/)) {
101 print "! Format not respected. Match : /$match/ (without \' \')\n";
102 next;
103 }
104 if ($input eq '') {
105 if ($default eq 'NULL') {
106 if ($manda eq 'y') {
107 print "! Mandatory parameter not filled in\n";
108 next;
109 }
110 print "+ Ignoring parameter.\n";
111 $input = '';
112 }
113 else {
114 print "+ Using default value\n";
115 $input = $default;
116 }
117 }
98 if($input eq ''){
99 if($_[2] eq 'NULL'){
100 if($_[1] eq 'y'){
101 print "! Mandatory parameter not filled in\n";
102 next;
103 }
104 else{
105 print "+ Ignoring parameter.\n";
106 $input = '';
107 }
108 }
109 else{
110 print "+ Using default value\n";
111 $input = $_[2];
112 }
113 }
114 elsif($input !~ $_[3] || $input =~ /'.+'/){
115 print "! Format not respected. Match : /$_[3]/ (without \' \')\n";
116 next;
117 }
118 }
विशेष रूप से यह है कि आपको उन घोंसले के बारे में पागल कर रहा है? – innaM
मुझे नहीं पता, मुझे लगता है कि लिखने का एक और तरीका है ... –