我正在编写一个 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
orwhile
循环中的键和值。但是,如何在循环中将每个变量重新分配给转换后的变量?
再次编辑:
知道了。此for
循环成功处理所有变量:
for my $key ( keys %XX ) {
$XX{$key} = processVar($XX{$key});
}
不过,我现在肯定会尝试制作一个配置文件,如下所示。现在我只需要弄清楚:)