我正在使用Perl腳本,用戶在腳本的開頭添加了一些設置變量,所有變量的前綴都是$XX
,如下所示。但是,用戶設置的變量需要通過一個簡短的轉換函數來清理它們。如何對多個變量進行替換,而這些變量的名稱我不知道提前?
有沒有辦法在$XX
前綴的所有變量上運行sub?
my $XXvar1 = "something";
my $XXvar2 = "something";
my $XXvar3 = "something";
my $XXvar4 = "something";
sub processVar {
my $fixVar = $_[0];
# Do stuff
return $fixVar;
}
# This obviously doesn't work. Use some kind of loop or something? How...
$XXvar* = processVar($XXvar*);
編輯: 我想現在的哈希爲此,按照一些建議谷歌:
my %XX;
$XX{var1} = "something 1";
$XX{var2} = "something 2";
$XX{var3} = "something 3";
$XX{var4} = "something 4";
我可以用鍵和值在for
然後工作或while
循環。但是,如何將每個變量重新分配給循環中的轉換後的變量?
再次編輯: 明白了。這for
循環處理成功的所有變量:
for my $key (keys %XX) {
$XX{$key} = processVar($XX{$key});
}
我一定要去嘗試做一個配置文件現在,雖然如下建議。現在我只需要弄清楚:)
爲什麼你不使用數組? – 2009-06-21 13:12:36
另請參見地圖功能http://perldoc.perl.org/5.8.8/functions/map.html – 2009-06-21 14:04:05