是否可以从I / O列表中声明Perl中的变量/哈希值[例如带字符串的文件]?
例如,如果我的文件看起来像这样:
param1
param2
param3
我希望Perl使用相应的名称生成3个哈希值。
答案 0 :(得分:4)
你正是在问什么,你不想做什么。根据输入命名变量是不好的juju。有很多原因,如果你想了解更多,我会推荐你this site来解释它们。
Morever - 它是不必要的,因为perl有哈希。哈希是可移植的命名空间 - 它们允许您关联键和值。 更好的是,哈希中的值可以是...哈希引用。
所以你可以在你的文件中读到:
param1
key=value
param2
key=anothervalue
把它变成哈希哈希:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
my %params;
$params{"param1"}{"key"} = "value";
$params{"param2"}{"key"} = "anothervalue";
print Dumper \%params;
等。
然后你不再需要有符号引用了。您的数据结构如下所示:
$VAR1 = {
'param1' => {
'key' => 'value'
},
'param2' => {
'key' => 'anothervalue'
}
};