青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

統(tǒng)計(jì)

  • 隨筆 - 50
  • 文章 - 42
  • 評(píng)論 - 147
  • 引用 - 0

留言簿(6)

隨筆分類

文章分類

Link

搜索

  •  

積分與排名

  • 積分 - 166566
  • 排名 - 159

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

如何理解Perl語(yǔ)言中的Glob

 

本文假設(shè)你對(duì)Perl引用已經(jīng)有所了解。

關(guān)于Perl glob,筆者建議閱讀《Advanced Perl Programming》第一版的第三章和第二版的第一章。本文是筆者經(jīng)過(guò)閱讀以上內(nèi)容并經(jīng)過(guò)一些實(shí)踐后完成的。

我們都知道Perl的引用類似C語(yǔ)言的指針。

C指針:
int a = 1;
int* pa;
pa = &a;
Perl引用:
my $a = 3;
my $ra = \$a;

引用都可以簡(jiǎn)單地看成是存儲(chǔ)了變量的地址:

$a $ra
3 變量$a的地址

在各種語(yǔ)言里,都有符號(hào)表(Symbol Table)的概念。符號(hào)表存儲(chǔ)著各種作用域里的符號(hào)(Symbol)。這里說(shuō)的Symbol是指我們編程時(shí)用到的各種名稱,包括變量名、函數(shù)名等。比如上面的“a”、“pa”、“ra”等都是symbol??聪旅娴拇a:

my $a = "sdd";
my $b = 34;
my @b = (2,3);
my %b = (name => 'me', age => 28);
sub b {
print "hello\n";
}

產(chǎn)生的符號(hào)表:

... ...
symbol a 變量$a的地址
... ...
symbol b $b的地址 @b的地址 %b的地址 函數(shù)b的地址
... ...

可以看到symbol b里存放了好幾個(gè)變量和函數(shù)的引用。在Perl里,symbol也可以被叫做glob。symbol b和symbal a可以分別用*b和*a表示。

glob的一個(gè)基本應(yīng)用是alias(別名):

$a = 10;
*b = *a;
print $b . "\n";
$b = 20;
print $a . "\n";

運(yùn)行結(jié)果:

10
20

符號(hào)表:

... ...
*a \$a
... ...
*b \$a
... ...

通過(guò)將引用賦給glob可以實(shí)現(xiàn)部分別名:

$a = 6;
@a = (1,2);
@b = (5,6);
print $a . "\n";
*b = \$a;
$b = 7;
print $a . "\n";

輸出:

6
7

符號(hào)表:

... ...
*a \$a \@a
... ...
*b \$a \@b
... ...

可以看到,只是標(biāo)量一樣了,數(shù)組還是各自的。

還可以用于參數(shù)傳遞:

sub change {
*b = shift;
$b = "cc";
}
$a = "tt";
print $a . "\n";
change(*a);
print $a . "\n";

運(yùn)行結(jié)果:

tt
cc

據(jù)說(shuō)通過(guò)glob傳遞參數(shù)要比傳引用快很多。

不同的作用域有不同的符號(hào)表:函數(shù)擁有自己的符號(hào)表,各個(gè)包也有自己的符號(hào)表。注意!詞法變量(lexical variable,用my關(guān)鍵字聲明的變量)不收入符號(hào)表。同時(shí),也不能用my關(guān)鍵字來(lái)聲明glob。my關(guān)鍵字只用來(lái)聲明詞法變量,glob不是詞法變量。

《Advance Perl Programming》第二版里說(shuō):可以把glob看成一個(gè)很有限的hash,他只有幾個(gè)key:SCALAR、ARRAY、HASH, IO, CODE, FORMAT和GLOB(筆者注:保存GLOB引用),另外還有兩個(gè)key:PACKAGE和NAME(筆者注:僅做自省用)。比如一個(gè)glob:a,*a{SCALAR}就相當(dāng)于\$a,*a{HASH}就相當(dāng)于\%a等等。

$a = 234;
print $a . "\n";
${*a{SCALAR}} = 345;
print $a . "\n";

輸出:

234
345

GLOB是Perl中幾個(gè)比較難的概念之一。在Perl的核心庫(kù)里,處處用到各種高深的glob技術(shù)。比如Exporter、AUTOLOAD、CORE等。雖然一般編程不需要用到特別深入的技術(shù)。如果能多了解一些,對(duì)于我們編程還是會(huì)大有益處的。 

posted on 2009-05-19 15:04 pear_li 閱讀(1129) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美不卡| 久久国产视频网| 欧美日韩www| 亚洲图片欧美午夜| 亚洲影院一区| 国产在线不卡视频| 欧美大片第1页| 欧美日韩国产精品一区二区亚洲| 亚洲精品日韩久久| 中文国产一区| 一区视频在线播放| 亚洲精品欧美日韩| 国产农村妇女精品| 欧美激情精品久久久久久免费印度| 免费不卡亚洲欧美| 亚洲综合色激情五月| 久久riav二区三区| 亚洲乱码日产精品bd| 一区二区三区欧美日韩| 国产日韩综合| 亚洲国产精品视频一区| 欧美视频在线一区| 久久一日本道色综合久久| 欧美极品aⅴ影院| 欧美一区二区日韩一区二区| 久久综合给合| 亚洲欧美在线一区| 欧美成ee人免费视频| 欧美在线亚洲在线| 欧美激情视频网站| 久久成人国产| 欧美日韩国产123区| 久久激情视频久久| 欧美午夜宅男影院| 亚洲国产成人一区| 韩国一区电影| 亚洲无限av看| 一区二区三区视频在线播放| 久久久综合免费视频| 亚洲欧美日韩在线一区| 男人天堂欧美日韩| 久久资源在线| 国产亚洲a∨片在线观看| 99精品国产99久久久久久福利| 伊人激情综合| 欧美在线视频日韩| 亚洲欧洲99久久| 欧美午夜电影在线| 亚洲美洲欧洲综合国产一区| 在线观看日韩av| 欧美淫片网站| 久久九九免费视频| 国产精品一卡二| 亚洲天堂成人在线视频| 夜夜躁日日躁狠狠久久88av| 欧美 日韩 国产精品免费观看| 久久嫩草精品久久久精品一| 国产日韩精品一区二区三区在线 | 中文国产一区| 免播放器亚洲一区| 欧美国产大片| 亚洲国产精品成人久久综合一区| 久久久久一区二区| 欧美日韩国内自拍| 一区二区三区国产在线观看| 毛片一区二区| 欧美激情一区二区三区四区| 亚洲国产你懂的| 欧美福利视频一区| 亚洲日本va午夜在线电影| 日韩一区二区高清| 欧美另类专区| 亚洲天堂av高清| 欧美专区福利在线| 韩国精品在线观看| 美日韩在线观看| 亚洲激情一区二区| 亚洲视频久久| 国产毛片一区二区| 久久精品国亚洲| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲精品视频一区二区三区| 欧美美女bbbb| 亚洲欧美日韩精品久久亚洲区 | 1000精品久久久久久久久| 老司机免费视频一区二区| 亚洲国产精品美女| 午夜国产精品视频免费体验区| 国产日韩精品视频一区| 久久精品综合| 一区二区三欧美| 久久久精品动漫| 日韩一级在线观看| 国产午夜精品一区二区三区欧美| 老司机成人网| 亚洲尤物在线视频观看| 免费的成人av| 亚洲欧美另类综合偷拍| 在线观看的日韩av| 国产精品vvv| 久久久精品国产免大香伊| 亚洲精品欧美日韩专区| 久久免费精品视频| 亚洲无线视频| 在线成人av网站| 国产精品久久久久高潮| 免费人成精品欧美精品| 亚洲香蕉在线观看| 欧美高清不卡在线| 欧美制服第一页| 99热精品在线| 极品av少妇一区二区| 欧美午夜国产| 欧美精品www| 久久亚洲影院| 午夜精品国产精品大乳美女| 亚洲三级国产| 亚洲国产一区二区三区在线播| 久久久久99| 午夜精品美女自拍福到在线 | 亚洲美女在线看| 黄色成人在线网址| 国产亚洲欧美另类一区二区三区| 欧美日韩一二三区| 欧美乱在线观看| 欧美成人免费观看| 久久久免费av| 久久久噜噜噜久久久| 久久精品99国产精品日本| 亚洲女与黑人做爰| 亚洲一区欧美激情| 亚洲无线视频| 一区二区精品在线| 99国产精品私拍| 日韩一区二区精品葵司在线| 国产伦精品一区二区三区在线观看 | 久久久久久久久久久久久女国产乱| 亚洲一区二区毛片| 在线综合+亚洲+欧美中文字幕| 欧美激情一区二区在线| 欧美多人爱爱视频网站| 亚洲成色999久久网站| 欧美大片免费久久精品三p| 榴莲视频成人在线观看| 久久尤物视频| 欧美激情免费在线| 亚洲丶国产丶欧美一区二区三区| 欧美成人r级一区二区三区| 卡通动漫国产精品| 欧美第一黄色网| 亚洲黄色在线观看| 日韩亚洲欧美在线观看| 亚洲视频国产视频| 欧美影院视频| 久久综合中文字幕| 欧美精品激情blacked18| 欧美日韩一区二区三区在线| 国产精品国产三级国产专区53| 国产精品成人一区二区网站软件| 国产精品一区在线观看| 韩日成人av| 亚洲精品男同| 午夜精品视频| 欧美成人亚洲成人| 99re热精品| 欧美在线网址| 欧美精品久久天天躁| 欧美午夜一区二区| 国产视频亚洲| 亚洲九九精品| 小黄鸭精品密入口导航| 久久一综合视频| 日韩五码在线| 久久久999精品免费| 欧美精品999| 国产亚洲亚洲| 99v久久综合狠狠综合久久| 欧美一区二区三区免费观看视频| 免费成人黄色av| 亚洲视频第一页| 久热精品在线| 国产日韩欧美麻豆| 亚洲日本va午夜在线影院| 香蕉成人伊视频在线观看| 欧美肥婆bbw| 欧美淫片网站| 国产精品国产三级国产普通话蜜臀 | 国产精品福利在线观看网址| 激情综合激情| 欧美一级在线播放| 亚洲国产专区校园欧美| 久久成人18免费网站| 欧美日韩伊人| 亚洲精品一品区二品区三品区| 欧美一区二区三区视频在线观看| 亚洲国产精品嫩草影院| 久久久亚洲欧洲日产国码αv| 国产精品永久免费观看| 一区二区三区国产| 欧美激情中文字幕在线|