【发布时间】:2014-05-15 15:36:15
【问题描述】:
我有一个哈希 (%filehandle),它将文件句柄存储为其值。但我无法打印它们。
我的哈希看起来像这样:
my %filehandle;
foreach my $output (@outputs){
foreach my $fp (@fp_values_array){
$filehandle{$output}{$fp}=undef;
}
}
print Dumper \%filehandle;
$VAR1 = {
'GMAF' => {
'0.05' => \*{'::$__ANONIO__'},
'1' => \*{'::$__ANONIO__'},
'0.001' => \*{'::$__ANONIO__'}
}
};
我知道问题在于这些值是引用,但我从 perl 开始,我不知道如何访问它们......
我尝试过这样的事情:
print "$_\n" for (keys ${$filehandle{GMAF}{$fp_value_array}});
但它不起作用。
Type of argument to keys on reference must be unblessed hashref or arrayref at report.pl line 369, <INPUT> line 5000.
如果有人可以帮助我,我将非常感激。
提前致谢!
【问题讨论】:
-
你不能打印它们是什么意思?文件句柄是对外部文件、套接字、管道等的引用,允许您访问它们。您不能打印它们 - 但您可以打印到它们。你问的是这个吗?
-
但正如您所说,这些文件句柄是对文件名输出的引用,不是吗?我的目标是打印这些输出文件名。
-
您使用名称作为创建文件句柄的一种方式。文件句柄不包含名称。它可能是对套接字、管道或没有文件系统名称的东西的引用。阅读stackoverflow.com/questions/2813092/… - 在某些情况下可以这样做,但并非总是如此。
标签: perl hash reference filehandle