0
我尝试将一个csv解析为perl中的哈希,然后返回作为参数传递给sub的key的值。 CSV文件是这样的:将一个CSV解析为Perl中的哈希并返回传递给该子的值
host1, 12121
host2, 34324252345
host3, 45345
host4, 56363425
host5, 3.1
hostn, 435345
而且我的代码是这样的:
#!/usr/bin/perl -w
my $host_key = getValue('host1');
print $host_key;
sub getValue {
my $host_file = 'test.csv';
my $hostname = $_[0];
chomp($hostname);
my %hash;
open my $fh, '<', $host_file or die "Cannot open: $!";
while (my $line = <$fh>) {
my @hostname_lines = split /,/, $line;
my $hostname = shift @hostname_lines;
$hash{$hostname} = \@hostname_lines;
}
close $fh;
my $host_value = $hash{$hostname};
return $host_value;
}
当我运行这段代码,我的返回值是阵列(0x6b72d0),但我期望的12121
返回值
my $ host_value = $ hash {'host1'} 所以我期望$ host_value = 12121 – JavaRed
发布,直接修复这个错误,以及其他一些选项。 (我删除了我发布的一些评论。) – zdim