構造

2018-02-24 16:03 更新

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

你可以寫 C 風格的循環(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

想想你編寫的代碼,并找找感覺。

匿名哈希和數(shù)組

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

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

匿名是因為我們不必創(chuàng)建數(shù)組。

哈希有相似的構造器:

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

看作你應認為的而非引用。

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

Perl 讓你自行指定定界符:

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

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

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

global、local、my?及?our

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號