.pm
(पर्ल मॉड्यूल) और .pl
(पर्ल स्क्रिप्ट) फ़ाइल के बीच अंतर क्या है ?
कृपया हमें यह भी बताएं कि हम 1
फाइल से क्यों लौटते हैं। यदि 2 या कुछ और लौटाते हैं, तो यह कोई त्रुटि उत्पन्न नहीं कर रहा है, इसलिए हम 1
पर्ल मॉड्यूल से क्यों लौटते हैं ?
.pm
(पर्ल मॉड्यूल) और .pl
(पर्ल स्क्रिप्ट) फ़ाइल के बीच अंतर क्या है ?
कृपया हमें यह भी बताएं कि हम 1
फाइल से क्यों लौटते हैं। यदि 2 या कुछ और लौटाते हैं, तो यह कोई त्रुटि उत्पन्न नहीं कर रहा है, इसलिए हम 1
पर्ल मॉड्यूल से क्यों लौटते हैं ?
जवाबों:
बहुत ही मूल में, आपके द्वारा उपयोग किए जाने वाले फ़ाइल एक्सटेंशन से कोई फर्क नहीं पड़ता है कि perl
उन फ़ाइलों की व्याख्या कैसे की जाती है।
हालाँकि, .pm
एक निश्चित निर्देशिका संरचना के बाद फाइलों में मॉड्यूल डालना जो पैकेज नाम का अनुसरण करता है, एक सुविधा प्रदान करता है। इसलिए, यदि आप एक मॉड्यूल है Example::Plot::FourD
और आप इसे एक निर्देशिका में डाल Example/Plot/FourD.pm
एक पथ में अपने में @INC
तो, use
और require
जब में के रूप में पैकेज का नाम दिया सही काम करेंगे use Example::Plot::FourD
।
फ़ाइल को किसी भी आरंभीकरण कोड के सफल निष्पादन को इंगित करने के लिए अंतिम विवरण के रूप में सही लौटना चाहिए, इसलिए यह ऐसी फ़ाइल को समाप्त करने के लिए प्रथागत है
1;
जब तक कि आप यह सुनिश्चित नहीं करते हैं कि यह अन्यथा वापस आ जाएगी।1;
यदि आप अधिक कथन जोड़ते हैं तो यह बेहतर है कि आप इसे डालें ।यदि
EXPR
एक नंगे तार है, तोrequire
एक ".pm" एक्सटेंशन मान लेता है और आपके लिए फ़ाइल नाम में "::" के साथ "" को बदल देता है, जिससे मानक मॉड्यूल लोड करना आसान हो जाता है। मॉड्यूल को लोड करने का यह रूप आपके नाम स्थान को बदलने का जोखिम नहीं उठाता है।
सभी use
प्रदान किए गए पैकेज नाम से फ़ाइल नाम का पता लगाना है, require
यह एक BEGIN
ब्लॉक में है और import
पैकेज पर आह्वान करता है। आपको उपयोग न करने से नहीं use
बल्कि उन चरणों को मैन्युअल रूप से लेने से रोकना है ।
उदाहरण के लिए, नीचे मैंने Example::Plot::FourD
पैकेज को एक फ़ाइल में रखा है जिसे फ़ाइल t.pl
में स्क्रिप्ट में लोड किया है s.pl
।
C:\Temp> cat t.pl
package Example::Plot::FourD;
use strict; use warnings;
sub new { bless {} => shift }
sub something { print "something\n" }
"Example::Plot::FourD"
C:\Temp> cat s.pl
#!/usr/bin/perl
use strict; use warnings;
BEGIN {
require 't.pl';
}
my $p = Example::Plot::FourD->new;
$p->something;
C:\Temp> s
something
यह उदाहरण दिखाता है कि मॉड्यूल फ़ाइलों को समाप्त करने की आवश्यकता नहीं है 1
, कोई भी सच्चा मूल्य होगा।
A .pl एक एकल स्क्रिप्ट है।
.Pm ( पर्ल मॉड्यूल ) में आपके कार्य हैं जिन्हें आप अन्य पर्ल स्क्रिप्ट से उपयोग कर सकते हैं:
एक पर्ल मॉड्यूल पर्ल कोड का एक स्व-निहित टुकड़ा है जिसका उपयोग पर्ल प्रोग्राम या अन्य पर्ल मॉड्यूल द्वारा किया जा सकता है। यह वैचारिक रूप से सी लिंक लाइब्रेरी या सी ++ क्लास के समान है।
1
कोई बात नहीं। यह हो सकता है2
, यह हो सकता है"foo"
, यह हो सकता है["a", "list"]
। जो बात मायने रखती है, वह नहीं है0
, या ऐसा कुछ भी नहीं है जो असत्य के रूप में मूल्यांकन करता है, याuse
विफल होगा।