PERL中的私有變數

2021-06-18 19:20:08 字數 757 閱讀 8255

預設情況下,perl中所有的變數都是全域性變數,也就是說在程式中的任何地方都可以訪問他們,但是你也可以隨時用乙個操作符來建立私有的詞法變數,即my

sub max

my($m,$n)=@_;

if($m>$n)

print $m;

else

print $n;

使用my操作符限定過的變數,其作用域只在其所在的**塊中有效,不被其他**訪問,另外,perl中允許最後乙個語句塊省略分號,但是,還是別用了,不能很好地養成好的

編碼習慣

更好的方式是在使用引數之前,進行引數的檢測,比如,看下是否傳遞進來的是兩個引數

sub max

my($m,$n)=@_;

if(@_[0]>$n)

else

}&max(3,4);

當然最好的情況是程式能夠自行處理可變引數的引數列表,**如下:

sub max

}print $max_so_far;

}&max(3,4,4,5);

如果使用該函式的人將空列表傳入程式,作為引數列表,我也沒有關係,這樣的話,$max_so_far是undef,而foreach迴圈則根本不執行

現在說下詞法變數my,即類似於c中的作用域限定符,

書中說my操作符當不是用小括號時,只是宣告了乙個變數,

my $fred=1,$h=3;這樣的話$h是可以使用的,不知道怎麼理解,暫時不作處理

perl中所有新的變數,標量的初始值是undef,列表的初始值是空列表

perl中的隱藏變數

當前頁可列印的行數,屬於perl格式系統的一部分 根據上下文內容返回錯誤號或者錯誤串 列表分隔符 列印數字時預設的數字輸出格式 perl直譯器的程序id 當前輸出通道的當前頁號 與上個格式匹配的字串 當前程序的組id 當前程序的有效組id 設定1表示處理多行格式.現在多以 s和 m修飾符取代之.當前...

Perl中的特殊變數

perl 可以執行在unix dos和mac 作業系統。通過 o確定其所執行的作業系統。詳細看 由此 我們來總結一下perl裡面用到的一些特殊變數。0 所執行的perl指令碼名稱 o perl 所執行環境 當前perl執行緒號 一般是子程式的引數 arvg perl直譯器實現建立的特殊陣列,內容是由...

Perl中的內建變數(預設變數)彙總

perl 內建變數表 當前頁可列印的行數,屬於perl格式系統的一部分 根據上下文內容返回錯誤號或者錯誤串 列表分隔符 列印數字時預設的數字輸出格式 perl直譯器的程序id 當前輸出通道的當前頁號 與上個格式匹配的字串 當前程序的組id 當前程序的有效組id 設定1表示處理多行格式.現在多以 s和...