1. do:
1)形式:
do 'filename';
說明:
這里filename需要添加單引號,否則會出錯;
filename可以為任何后綴的,甚至沒有后綴,不要求是pl或者pm等。
2)關于do的理解:
do 'filename'
首先需要讀入filename的文件(如果讀入失敗,返回undef而且會設置$!變量);
如果讀入成功,然后對filename讀入的語句進行編譯(如果無法編譯或者編譯錯誤,會返回undef而且設置錯誤信息到$@變量);
如果編譯也成功,do會執(zhí)行filename中的語句,最終返回最有一個表達式的值。
簡短表達do 'filename'的功能,就是能夠將filename中的文字全部加載到當前文件中。
3)理解do的用法:
a. 將文件拆分:
main.pl:
b. 可以在seperate中定義函數(shù),然后在當前文件中調用:
main.pl
c. 可以在seperate中定義package,然后在當前文件中調用:
main.pl
件名必須與package的名稱相同,而且seperate都不需要pm后綴。
從上面的例子,很容易得到,使用do可以方便地實現(xiàn)文件包含。
更多參看http://perldoc.perl.org/functions/do.html
2. require
參看http://perldoc.perl.org/functions/require.html
1)形式:
require 'filename';
require "filename";
這兩種相同,而且和do的使用方法都類似;
require Module;
如果不加單引號或者雙引號的話,后面的Module將被解析為Perl的模塊即.pm文件,然后根據(jù)@INC Array中搜索Module.pm文件。首先在當前目錄下搜索Module.pm的文件(用戶自定義的),如果找不到再去Perl的 (@INC contains: C:/Perl/site/lib C:/Perl/lib .)尋找。
如果Module中出現(xiàn)::,如require Foo::Bar; 則會被替換為Foo/Bar.pm
2)關于require使用的解釋:
如果使用require 'filename'或者require "filename"來包含文件的話,使用方法和do完全近似;
如果使用require Module的話,則需要定義Module.pm的文件而且文件中的package要以Module來命名該模塊。
main.pl
Show.pm
#Show.pm
main.pl
Show.pm
4. perlmod - Perl modules (packages)
參考http://perldoc.perl.org/perlmod.html
1) 示例:
2)
一般文件名需要和package名稱相同,這里為Show;
可以定義變量和函數(shù);
不要忘記1;
以及最后的__END__
3)
在別的文件中,使用require或者use使用模塊的時候:
5. Perl的函數(shù)定義及調用:
1) 如果定義在使用之前,在使用的時候直接fun_name();即可
2)如果定義在使用之后,之前使用的時候需要使用&fun_name();來調用函數(shù)。
6.
小結:
綜上,文件包含可以提高代碼的復用性,在Perl是實現(xiàn)文件包含可以才去兩條路:
1)使用do或者require(帶引號的)那種方式;
2)使用require Module或者use Module的模塊方式;
兩者均可。
新聞熱點
疑難解答