我正在尝试创建数组的哈希。目前,该阵列的大小仅为1。
$f1="/scratch/aime1/PerlCode/BeforeUpgrade.csv";
$f2="/scratch/aime1/PerlCode/AfterUpgrade.csv";
open(FIN, "< $f1");
while( $my_line = <FIN> )
{
chomp $my_line;
my @values = split(',', $my_line);
my $key = shift @values;
print "$keyn";
print "@valuesn";
$hash1{$key} = @values;
}
close(FIN);
for (keys %hash1) {
my @value_array = $hash1{$_};
print "Key is $_ and first Element of array is $value_array[0] n";
}
因此,密钥的形式为/scratch/aime1/idmUpgrade/idmUpgrade
,值为其权限,即0755
当我尝试打印这个散列时,输出是:
Key is /scratch/aime1/idmUpgrade/idmUpgrade and first Element of array is 1
数组始终打印为1,而不是0755。
始终在每个perl脚本的顶部包含use strict;
和use warnings;
。
您正在将一个数组分配给一个散列键,为此您需要获取一个引用。否则,您只需分配数组计数(即1)
$hash1{$key} = @values;
同样,当你想检索它时,你需要取消引用它:
my @value_array = @{$hash1{$_}};