एक पर्ल सबराउटिन के लिए, यदि 0 तर्क गुजर रहा है, तो मैं इसे कॉल करने के लिए 4 रूपों का उपयोग कर सकता हूं। लेकिन 1 या अधिक तर्क गुजर, वहाँ एक रूप है कि मैं का उपयोग नहीं कर रहा है, कृपया नीचे देखें:सिंटैक्स `और नाम arg1 arg2 क्यों ... 'पर्ल सबराउटिन को कॉल करने के लिए उपयोग नहीं किया जा सकता है?
sub name
{
print "hello\n";
}
# 4 forms to call
name;
&name;
name();
&name();
sub aname
{
print "@_\n";
}
aname "arg1", "arg2";
#&aname "arg1", "arg2"; # syntax error
aname("arg1", "arg2");
&aname("arg1", "arg2");
त्रुटि आउटपुट है
String found where operator expected at tmp1.pl line 16, near "&aname "arg1""
(Missing operator before "arg1"?)
syntax error at tmp1.pl line 16, near "&aname "arg1""
Execution of tmp1.pl aborted due to compilation errors.
किसी संकलक से त्रुटि उत्पादन व्याख्या कर सकते हैं दृष्टिकोण? मुझे समझ में नहीं आता क्यों यह गायब ऑपरेटर के बारे में शिकायत करता है।
धन्यवाद
आपको एक अच्छा जवाब मिला। इसके लिए '&' के उपयोग के बारे में बहुत अधिक चर्चा के लिए ['यह पोस्ट'] देखें (http://stackoverflow.com/questions/1347396/when-should-i-use-the-to-call-a- perl-subroutine), और ['यह पोस्ट'] (http://stackoverflow.com/questions/8912049/difference-between-function-and-function-in-perl), और [' यह पोस्ट'] (http: //stackoverflow.com/questions/6706882/using-ampersands-and-parens-when-calling-a-perl-sub) ... और शायद अन्य लोग हैं। – zdim
@zdim बस सोच रहा है, आपने लिंक मार्कअप में लिंक क्यों लगाए? – simbabque
@simbabque हा, अच्छा बिंदु। मुझे लगता है कि वे अधिक दिखाई दे रहे हैं, हाइलाइट। वास्तव में नहीं जानते। वास्तव में इसके बारे में कभी भी "कोड मार्कअप" के रूप में नहीं सोचा (आप सही हैं, यह है) - लेकिन हाइलाइट के रूप में अधिक। – zdim