对于所有这些愚蠢的问题,我很抱歉,我已经被投入到 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