構(gòu)造

2018-02-24 16:03 更新

C 風(fēng)格的循環(huán)通常不必要

你可以寫(xiě) C 風(fēng)格的循環(huán),但常常不需要它們。

不要在?foreach?的位置使用它們:

for (my $i = 0; $i <= $#foo; $i++) { # BAD

foreach (@foo) { # BETTER

不要在?while?的位置使用它們:

for (my $i = <STDIN>; $i; $i = <STDIN>) { # BAD

while (my $i = <STDIN>) { # BETTER

想想你編寫(xiě)的代碼,并找找感覺(jué)。

匿名哈希和數(shù)組

創(chuàng)建一個(gè)匿名數(shù)組引用,并給它賦值:

my $array = [ 'one', 'two', 'three' ];

匿名是因?yàn)槲覀儾槐貏?chuàng)建數(shù)組。

哈希有相似的構(gòu)造器:

my $hash = { one => 1, two => 2, three => 3 };

看作你應(yīng)認(rèn)為的而非引用。

q[qrwx]?//m//、s///?及?y///

Perl 讓你自行指定定界符:

  • 單引號(hào):'text' => q/text/
  • 雙引號(hào):"text" => qq/text/
  • 正則表達(dá)式:qr/text/。除此之外,在 Perl 匹配及替換操作符外沒(méi)有別的方式指定正則表達(dá)式匹配。
  • 單詞:("text", "text") => qw(text text);
  • 反引號(hào):`text` => qx/text/
  • 正則匹配(m//)、正則替換(s///)、及轉(zhuǎn)換(tr///、y///) 工作方式相同

你可以使用除空白之外的任意字符。但要注意平衡括號(hào)或花括號(hào):

qq//
qq#A decent <html> delimiter </html> #
qq( man perl(1) for details ) # valid!

global、localmy?及?our

  • 使用?use vars?聲明全局變量
  • 使用?my?聲明詞法變量
  • local?并非你所認(rèn)為的,除非你知道為何使用?local,否則使用?my?代替
  • 僅當(dāng)你的包需要全局變量時(shí)使用?our
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)