主頁(yè) > 知識(shí)庫(kù) > perl文件包含(do,require,use)指令介紹

perl文件包含(do,require,use)指令介紹

熱門標(biāo)簽:邯鄲外呼調(diào)研線路 真人語音電銷機(jī)器人系統(tǒng) 武漢呼叫中心外呼系統(tǒng)線路商 北京語音電銷機(jī)器人價(jià)格 電話機(jī)器人電話卡封號(hào)怎么辦 買了外呼系統(tǒng)不想用了怎么辦 浦東上海400開頭的電話申請(qǐng) 開封百應(yīng)電銷機(jī)器人聯(lián)系方式 樂昌電話機(jī)器人

1. do:

1)形式:
do 'filename';
說明:
這里filename需要添加單引號(hào),否則會(huì)出錯(cuò);
filename可以為任何后綴的,甚至沒有后綴,不要求是pl或者pm等。

2)關(guān)于do的理解:
do 'filename'
首先需要讀入filename的文件(如果讀入失敗,返回undef而且會(huì)設(shè)置$!變量);
如果讀入成功,然后對(duì)filename讀入的語句進(jìn)行編譯(如果無法編譯或者編譯錯(cuò)誤,會(huì)返回undef而且設(shè)置錯(cuò)誤信息到$@變量);
如果編譯也成功,do會(huì)執(zhí)行filename中的語句,最終返回最有一個(gè)表達(dá)式的值。

簡(jiǎn)短表達(dá)do 'filename'的功能,就是能夠?qū)ilename中的文字全部加載到當(dāng)前文件中。

3)理解do的用法:
a. 將文件拆分:
main.pl:

復(fù)制代碼 代碼如下:

use strict;
do 'seperate'; #文件可以以任何后綴命名甚至沒有后綴;
seperate:
print "Hello from seperate file! :-)";

b. 可以在seperate中定義函數(shù),然后在當(dāng)前文件中調(diào)用:
main.pl

復(fù)制代碼 代碼如下:

#!/usr/bin/perl
use strict;
do 'seperate';
show();
seperate:
sub show{
    print "Hello from seperate file! :-)";
}

c. 可以在seperate中定義package,然后在當(dāng)前文件中調(diào)用:
main.pl

復(fù)制代碼 代碼如下:

#!/usr/bin/perl
use strict;
do 'seperate';
Show::show_sentence();
seperate:
package Show;
sub show_sentence(){
    print "Hello from seperate file! :-)";
}
1;
__END__
#都不需要文

件名必須與package的名稱相同,而且seperate都不需要pm后綴。

從上面的例子,很容易得到,使用do可以方便地實(shí)現(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;
如果不加單引號(hào)或者雙引號(hào)的話,后面的Module將被解析為Perl的模塊即.pm文件,然后根據(jù)@INC Array中搜索Module.pm文件。首先在當(dāng)前目錄下搜索Module.pm的文件(用戶自定義的),如果找不到再去Perl的 (@INC contains: C:/Perl/site/lib C:/Perl/lib .)尋找。
如果Module中出現(xiàn)::,如require Foo::Bar; 則會(huì)被替換為Foo/Bar.pm

2)關(guān)于require使用的解釋:
如果使用require 'filename'或者require "filename"來包含文件的話,使用方法和do完全近似;
如果使用require Module的話,則需要定義Module.pm的文件而且文件中的package要以Module來命名該模塊。
main.pl

復(fù)制代碼 代碼如下:

#!C:\perl\bin\inperl -w
use strict;
require Show;
Show::show_header();

Show.pm
#Show.pm

復(fù)制代碼 代碼如下:

package Show;
sub show_header(){
    print "This is the header!  ";   
    return 0;
}
sub show_footer(){
    print "This is the footer!  ";   
    return 0;
}
1;
__END__

3. use
參看http://perldoc.perl.org/functions/use.html
1)形式:
use Module;
use只能夠使用模塊,而且和require的用法相似,需要Module.pm的文件,而且文件中的package需要已Module來命名該模塊。

main.pl

復(fù)制代碼 代碼如下:

#!C:\perl\bin\perl -w
use strict;
use Show;
Show::show_header();

Show.pm

復(fù)制代碼 代碼如下:

#Show.pm
package Show;
sub show_header(){
    print "This is the header!  ";   
    return 0;
}
sub show_footer(){
    print "This is the footer!  ";   
    return 0;
}
1;
__END__

2)require和use的區(qū)別:
require:
do the things at run time; (運(yùn)行時(shí)加載)
use:
do the things at compile time; (編譯時(shí)加載)

4. perlmod - Perl modules (packages)
參考http://perldoc.perl.org/perlmod.html
1)  示例:

復(fù)制代碼 代碼如下:

#Show.pm
package Show;
sub show_header(){
    print "This is the header! /n";  
    return 0;
}
sub show_footer(){
    print "This is the footer! /n";  
    return 0;
}
1;
__END__

2)
一般文件名需要和package名稱相同,這里為Show;
可以定義變量和函數(shù);
不要忘記1;
以及最后的__END__

3)
在別的文件中,使用require或者use使用模塊的時(shí)候:

復(fù)制代碼 代碼如下:

use Show;
#require Show;
Show::show_header();

5. Perl的函數(shù)定義及調(diào)用:
 

復(fù)制代碼 代碼如下:

sub fun_name(){
 #...
}

1) 如果定義在使用之前,在使用的時(shí)候直接fun_name();即可
2)如果定義在使用之后,之前使用的時(shí)候需要使用fun_name();來調(diào)用函數(shù)。

6.
小結(jié):
綜上,文件包含可以提高代碼的復(fù)用性,在Perl是實(shí)現(xiàn)文件包含可以才去兩條路:
1)使用do或者require(帶引號(hào)的)那種方式;
2)使用require Module或者use Module的模塊方式;
兩者均可。

標(biāo)簽:自貢 淄博 六安 河北 鄂州 石嘴山 宜春 松原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《perl文件包含(do,require,use)指令介紹》,本文關(guān)鍵詞  perl,文件,包含,require,use,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《perl文件包含(do,require,use)指令介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于perl文件包含(do,require,use)指令介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章