对于所有这些愚蠢的问题感到抱歉,我一直强调Perl编程,而且我发现很难像Perl程序员那样思考。今天如何将变量的值用作Perl变量名称?
愚蠢的问题: 我使用id字段作为关键,像这样
#open file
my %hash;
while (<MY_FILE>) {
chomp;
my ($id, $path, $date) = split /\|/;
$hash{$id} = {
"path" => $path,
"date" => $date
};
}
加载管道分隔文件转换成散列有几次,但是,当我真正需要的关键是路径,因为无论出于何种原因(并且不能改变),id不是唯一的,所以我有一个明智的想法,我可以将它全部放入一个子例程中,并传递变量的名称以使用作为它的关键,有点像这样:
load_hash("path");
sub load_hash {
my $key = shift;
#do stuff, and then in while loop
$hash{${$key}} = #and so on
}
但perldb x $ {$ key}始终是undef,尽管x $ {path}将值打印到$ path中。
有没有某种方式做我想要做的?
TIA
谢谢,工作。 – Sparkles 2009-11-13 00:57:26