散列数组;不能使用字符串(" 1")作为ARRAY参考,而严格参考"?

时间:2014-10-16 10:10:54

标签: arrays perl hash

我想在perl中使用2维做一个数组,我看到这样做的简单方法是使用哈希数组。 有我的哈希数组

my %tstat;

while ( $index <= $i ) {
    $curfile[$index] = $camera_path[$index] . "/current.jpg";
    $tstat{$index} = stat( $curfile[$index] );
    $index++;
}

$index = 0;
while ( $index <= $i ) {
    if ( $tstat{$index}[9] != $last_direct_img[$index] || $buffer_init-- > 0 ) {
        ...;
        $index++;
    }
}

它告诉我

  

“严格参考”

时,不能使用字符串(“1”)作为ARRAY参考号

我试着用{9}改变[9],但它是一样的,为什么?

2 个答案:

答案 0 :(得分:2)

您必须在内部结构中存储引用:

$tstat{$index} = [ stat($curfile[$index]) ];

答案 1 :(得分:0)

尝试:

my @status_info = stat($curfile[$index]);
$tstat{$index} = \@status_info;

然后:

my $mtime = $tstat{$index}->[9];
...