तो मैं सोच रहा था कि एक मानक मॉड्यूल से पर्ल क्लास विधि और सामान्य सबराउटिन के बीच उपयोग में कोई अंतर है या नहीं। क्या आप एक बार एक दूसरे का उपयोग करेंगे? इस उदाहरण के लिए, मुझे लगता है कि किसी भी मॉड्यूल में कोई ऑब्जेक्ट विधियां मौजूद नहीं हैं।पर्ल मॉड्यूल क्लास विधि बनाम सामान्य सबराउटिन
त्वरित थोड़ा मुख्य यहाँ वर्ग:
#!/usr/local/bin/perl
use strict;
use warnings;
use Foo;
use Bar;
my $arg1 = "blah";
my ($str1, $str2);
$str1 = Foo::subroutine($arg1);
$str2 = Bar->subroutine($arg1);
exit(0);
पैकेज फू पकड़ होगा मेरी साधारण सबरूटीन कॉल
use strict;
use warnings;
package Foo;
sub subroutine {
my $arg = shift;
my $string = "Ordinary subroutine arg is $arg\n";
return $string;
}
1;
पैकेज बार मेरी कक्षा विधि कॉल
use strict;
use warnings;
package Bar;
sub subroutine {
my $class = shift;
my $arg = shift;
my $string = "Class method arg is $arg\n";
return $string;
}
1;
आम तौर पर अगर मैं पकड़ होगा मैं पर्ल कोड लिख रहा हूं, मैं बस क्लास विधि विकल्प का उपयोग करूंगा (जैसे बार एक्सपैम्प के साथ ले), लेकिन मैंने एक पूर्व सहकर्मी से कुछ कोड पढ़ने के बाद इस सवाल पर विचार करना शुरू किया जो फू उदाहरण में वाक्यविन्यास का उपयोग करता था। दोनों एक ही चीज को स्वाभाविक रूप से करते हैं, लेकिन आंखों से मिलने से कहीं अधिक लगता है।
*** हमेशा *** 'उपयोग strict' और * के हर * पर्ल कार्यक्रम आप लिखते हैं, शुरू में' उपयोग warnings' चाहे कितना तुच्छ। 'My' का उपयोग बिना 'सख्त' जगह में बहुत कम बिंदु है। – Borodin
मेरा विश्वास करो, मैं करता हूं। मैंने अभी उन्हें इस उदाहरण के लिए नहीं लिखा क्योंकि यह सवाल के केंद्रीय मूल का हिस्सा नहीं था। – MeNoSeeGood
फिर भी आपने शेबांग लाइन को शामिल किया है, जो अब तक कम प्रासंगिक है! सर्वोत्तम अभ्यास के अनुसार कृपया अपने उदाहरण हमेशा लिखें: आपको कम से कम दंडित किया जाएगा, और आपके प्रश्न पढ़ने वाले अधिक लोग मानेंगे कि यह एक अच्छा विचार * है। – Borodin