मुझे पूरा यकीन है कि मैंने कहीं कहीं पढ़ा है कि यह संभव है, लेकिन कुछ गठजोड़ हैं जिन्हें आपको अवगत होना चाहिए। दुर्भाग्य से, मुझे ट्यूटोरियल या पेज नहीं मिला है जो वर्णन करता है कि आपको क्या करना है। मैंने Perl tutorials को देखा, और मुझे वह नहीं मिला जो मुझे याद है। क्या कोई मुझे किसी पृष्ठ या दस्तावेज़ पर इंगित कर सकता है जो वर्णन करता है कि एकाधिक पैकेज को एकल .pm फ़ाइल में कैसे रखा जाए?पर्ल में, मैं एक ही .pm फ़ाइल में एकाधिक पैकेज कैसे डालूं?
उत्तर
आप बस एक और पैकेज बयान के साथ नए पैकेज से शुरू:
package PackageOne;
# ...... code
package PackageTwo;
# .... more code
यह करने के लिए कैसे: बस कई package
निर्देश जारी करते हैं।
गॉटचास मैं सोच सकता हूं: my
-variables पैकेज-स्थानीय नहीं हैं, इसलिए वे वैसे भी साझा किए जाते हैं। किसी भी मुद्दे को जारी करने से पहले, आप डिफ़ॉल्ट रूप से पैकेज main
पैकेज में हैं।
इस तरह मैं सामान्य रूप से यह कार्य करें:
use strict;
use warnings;
use 5.010;
{
package A;
sub new { my $class = shift; bless \$class => $class }
sub hello { say 'hello from A' }
}
{
package B;
use Data::Dumper;
sub new { my $class = shift; bless { @_ } => $class }
sub hello { say 'Hello from B + ' . shift->dump }
sub dump { Dumper $_[0] }
}
$_->hello for A->new, B->new(foo => 'bar');
यदि पैकेज पहले से ही अपने दायरे को परिभाषित करता है तो ब्लॉक स्कोप अच्छा क्या है? – ceving
@ceving - इसी कारण से ~ 5.1' perl 5.14 पर बदल दिया गया था, अब निम्न वाक्यविन्यास की अनुमति दें: 'पैकेज ए {...}'। एनबी। यह '{पैकेज ए के समान है; ...} ')। यह * getchas * से बचें * आप 'my' और' our' जैसी चीज़ों के साथ प्राप्त कर सकते हैं। रेफरी: http://perldoc.perl.org/5.14.0/functions/package.html – draegtun
यह वही मेरे लिए काम किया है:
#!/usr/bin/perl
use strict;
use warnings;
{
package A;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(a_sub);
our @EXPORT = qw(a_sub);
sub a_sub {
# your code ...
}
}
{
package B;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(b_sub);
our @EXPORT = qw(b_sub);
sub b_sub {
# your code ...
}
}
# Main code starts here ##############
use boolean;
use Data::Dumper;
import A qw(a_sub);
import B qw(b_sub);
a_sub();
b_sub();
महत्वपूर्ण मुद्दा यह है कि बजाय "उपयोग" का उपयोग करने के लिए, आप इसे "के लिए बदल रहा है आयात करें "(इस तरह यह नहीं जाएगा और फ़ाइल को देखने का प्रयास करें)।
मेरा दृष्टिकोण समान था, मैंने अभी बदल दिया '{पैकेज ए; ...} '' 'पैकेज 'ए {...}'। –
- 1. एकाधिक पुस्तकालयों में एक ही आर पैकेज
- 2. पर्ल में, एक .pm (पर्ल मॉड्यूल) और .pl (पर्ल स्क्रिप्ट) फ़ाइल के बीच क्या अंतर है?
- 3. मैं सूची दृश्य में एक ही पंक्ति पर एकाधिक आइटम कैसे डालूं?
- 4. मैं पर्ल में बहुत सारे व्हाइटस्पेस कैसे डालूं?
- 5. मैं स्कैला में एक चर कैसे डालूं?
- 6. मैं पर्ल में एक ही समय में एकाधिक सूचियों पर कैसे पुन: प्रयास कर सकता हूं?
- 7. elisp में, मैं एक चर में एक फ़ंक्शन कैसे डालूं?
- 8. मैं पर्ल में नामस्थान में पैकेज प्रतीक कैसे निर्यात करूं?
- 9. एक ही फ़ाइल में एकाधिक फ़ाइल डिस्क्रिप्टर, सी
- 10. मैं वीबीए में एक स्ट्रिंग में डबल कोट्स कैसे डालूं?
- 11. मैं पर्ल पैकेज के फ़ाइल नाम को कैसे ढूंढूं?
- 12. मैं बेसनेम को एक चर में कैसे डालूं?
- 13. मैं एक ही सबमिट बटन में एक ऑनक्लिक और वापसी झूठी कथन कैसे डालूं?
- 14. मैं टोमकैट में एक ही युद्ध फ़ाइल में एकाधिक संदर्भों को कैसे मैप कर सकता हूं?
- 15. मैं जेटी में एक ही युद्ध फ़ाइल में एकाधिक संदर्भों को कैसे मैप कर सकता हूं?
- 16. मैं एक मोंगो डेटाबेस से दूसरे में रिकॉर्ड कैसे डालूं?
- 17. मैं डेटास्टोर में शब्दकोश कैसे डालूं?
- 18. मैं Scope_Identity() को int में कैसे डालूं?
- 19. मैं मास्टरपेज में डेटा कैसे डालूं?
- 20. मैं क्यूटी डिजाइनर में QTabBar कैसे डालूं?
- 21. एकाधिक पैकेज.जेसन फाइलें एक पैकेज में
- 22. मैं पर्ल में एक बाइनरी फ़ाइल कैसे बना सकता हूं?
- 23. मैं एक पर्ल हैश में फ़ाइल कैसे लोड करूं?
- 24. आर एक ही पैकेज
- 25. मैं पर्ल में एकाधिक उपप्रसंचार कैसे प्रबंधित करूं?
- 26. एक ही प्रमाणपत्र फ़ाइल में एकाधिक एपीएनएस प्रमाणपत्र
- 27. मैं पाइथन में स्ट्रिंग के अंदर एक चर कैसे डालूं?
- 28. मैं mysql में एक यादृच्छिक मान कैसे डालूं?
- 29. Jquery - मैं इनपुट में एक कैरेक्टर कैसे डालूं
- 30. मैं Google क्रोम इंस्पेक्टर में एक HTML तत्व कैसे डालूं?
मुझे लगता है कि मैंने जो लेख पढ़ा है, उसमें कुछ निश्चित चीजें हैं जो आपको करना था या समस्याएं जो स्कॉइंग के साथ दिखाई दे सकती थीं। –
बेशक वहां स्कोपिंग समस्याएं होंगी और यही कारण है कि इसकी अनुशंसा नहीं की गई, मैंने जो लिंक जोड़ा है उसे देखें। – ennuikiller
आप केवल उस नाम के साथ एक पैकेज का उपयोग कर सकते हैं जो फ़ाइल नाम से मेल खाता है, और आप केवल उस फ़ाइल का उपयोग कर सकते हैं जिसमें आसानी से 'उपयोग' हो, जिसमें उसके नाम से संबंधित पैकेज शामिल है। इसके अलावा और तथ्य यह है कि फ़ाइल-स्कोप्ड लेक्सिकल अगले पैकेज में "रिसाव" करेंगे (ब्रेसिज़ जोड़कर टालने योग्य) वहां बहुत कुछ नहीं पता है। – hobbs