像是 $_ 可取得 foreach 迴圈中每一輪的元素,例如
#!/usr/bin/env perl @a = reverse((1 .. 10)); print "\n"; foreach (@a) { print "$_\n"; } print "\n"; # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:demo5.pl # 功能:示範 Perl 程式 # 作者:張凱慶 # 時間:西元 2013 年 1 月
這樣子就少定義一個變數了,執行結果會跟之前的例子相同
$_ 也是多用途的,官網對 $_ 的定義為 The default input and pattern-searching space. ,這意思是前文輸入的變數,其他常用的地方像是副程式 (subroutine) 中的參數 (parameter) ,例如
#!/usr/bin/env perl sub print_newline { print "\n"; } sub print_something { print "$_[0]\n"; } sub return_something { return $_[0]; } print_newline; print_something(return_something("There is no spoon.")); print_newline; # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:demo6.pl # 功能:示範 Perl 程式 # 作者:張凱慶 # 時間:西元 2013 年 1 月
原本副程式的參數需要用 shift 來設定
$a = shift;
用 $_ 的話,索引值為 0 就是副程式小括弧中的第一個參數,索引值為 1 就是副程式小括弧中的第二個參數,餘下可類推。這樣 demo6.pl 會跟之前 printdemo.pl 的執行結果一模一樣
除了 $_ 之外,特別變數還有很多,像是
$. | $/ | $, | $\ | $" | $; | $^L | $: |
$^A | $# | $? | $! | $@ | $$ | $< | $> |
$( | $) | $0 | $[ | $] | $^D | $^E | $^F |
$^H | $^I | $^M | $^O | $^P | $^T | $^W | $^X |
以上是純量變數 (scalar variable) 的部份,其他還有很多很多,另外須注意暱稱不止一個,像 $_ 也可以用 $ARG 。
特別變數是 Perl 提供給程式設計師方便寫程式的用法,我們還不需要急著學會所有的特別變數,因為裡面很多用法牽涉到更深入的程式設計概念,現在我們需要知道的是 Perl 有這些為數眾多的特別變數,可以簡化程式的寫法。
目前為止,我們寫程式都沒有採取嚴格的寫法,直譯器並不會警告或提醒有哪些地方不妥當,接下來我們來看看 my 與 use 吧!
中英文術語對照 | |
---|---|
特別變數 | special variable |
副程式 | subroutine |
參數 | parameter |
純量變數 | scalar variable |
您可以繼續參考
軟體開發
相關目錄
回 Perl 入門指南
回 Perl 教材
回首頁
參考資料
http://perldoc.perl.org/perlvar.html
http://www.tutorialspoint.com/perl/perl_special_variables.htm
沒有留言:
張貼留言