程式扎記: [Perl 教學] Perl 關鍵字 'local' 的用法

標籤

2010年7月30日 星期五

[Perl 教學] Perl 關鍵字 'local' 的用法


參考至 這裡

原本local的用法是為了怕變數被sub function更改到 才有這個用法的
因為perl原本都不用宣告就能使用參數了
所以若是
  1. sub Test {  
  2.   $abc = 0;  
  3. }  
  4. $abc = 100;  
  5. Test();  
  6. print $abc;  
#印出來的值會是0
#因為 sub function中,使用了$abc在之前就宣告了, 所以程式會拿之前宣告的$abc的memory來使用
# 所以呼叫Test()後 值就變了


因此,若是不希望sub function會改到全域(呼叫它的也可能是sub function)原有的變數
就必須在sub function裡的變數 加上local這個關鍵字
  1. sub Test{  
  2.   local $abc = 0;  
  3. }  
  4. $abc = 100;  
  5. Test();  
  6. print $abc;  
#印出來的值會是100
另外一點就是...若程式使用了
use strict
就不能使用local了
因為上面這種情形就不會出現了...凡事要用的變數都要宣告
就不會分不清楚是「區域變數」還是「全域變數」了 
This message was edited 2 times. Last update was at 09/02/2010 08:54:23

沒有留言:

張貼留言

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!