我想用一些軟件包和一些雜注在我所有的程序,如:如何「使用」一個「使用」多個模塊?
use 5.014;
use warnings;
use autodie;
use My::ModuleA::Something;
use ModuleB qw(Func1 Func2);
我不想重複自己每一個模塊中,因此尋找一種方式,如何使一個包如My::Common
什麼將包含以上套餐,並在我的節目只做:
use My::Common;
say Func1("hello"); #say enabled and Func1 imported in the My::Common
如何實現這一目標?
被讀爲preldoc -f use
和perldoc perlmodlib
所以我認爲我必須「有點」這樣做與BEGIN加需要&導入,但絕對不知道如何。
更新:我已經嘗試了基本的東西。
With require
- 我的prg.pl程序。
require 'mymods.pl';
$var = "hello";
croak "$var\n";
mymods.pl包含
use strict;
use feature 'say';
use Carp qw(carp croak cluck);
1;
不WORKS。遇到錯誤:
$ perl prg.pl
String found where operator expected at prg.pl line 3, near "croak "$var\n""
(Do you need to predeclare croak?)
syntax error at prg.pl line 3, near "croak "$var\n""
Execution of prg.pl aborted due to compilation errors.
與 「用我的」:
use My;
$var = "hello";
croak "$var\n";
我My.pm
package My;
use strict;
use feature 'say';
use Carp qw(carp croak cluck);
1;
不在線,無論是。得到了同樣的錯誤。
任何工作理念?
是的!這工作。 ;)Thanx。因此,需要調用導入,並且對於導出的函數,需要使用* {「$ caller ....}進行黑暗的VooDoo :)。 – kobame
@kobame:哦,等等,我剛發現'autodie-> import' didn'請參閱我的編輯 – yibe
爲什麼沒有提到CPAN上的現有技術?[Toolkit](http://p3rl.org/Toolkit),[ToolSet](http:// p3rl .org/ToolSet),[rig](http://p3rl.org/rig),[perl5i](http://p3rl.org/perl5i),[perl5](http://p3rl.org/perl5)已經這樣做了 – daxim