我的教授在幻灯片上有一些我不理解的语法。
在 perl 中有:
$hash{$string}{$anotherString}++;
这个语法是什么意思?如果是:
$hash{$string}{$int}++;
会增加值(value)吗? 当我打印时使用
while( my( $key, $value ) = each %hash ){print "$key: $value\n";}
我的输出是 “ key ”:哈希(0xbe0200)
最佳答案
那是一个二维哈希,一个哈希的哈希。一旦您意识到任何单个值实际上都是标量,就很容易在 Perl 中跟踪结构。在多维结构的情况下,标量值是一个引用。例如:
my %outer = ( "foo" => { "bar" => 1 } );
内部 { "bar"=> 1 }
是哈希引用。在赋值中使用 { }
表示匿名散列。这类似于:
my %inner = ( "bar" => 1 );
my %outer = ( "foo" => \%inner );
现在当你想引用 %inner
中的值时,你使用第一个键访问哈希引用,第二个键访问 %inner
中的值>:
print $outer{"foo"}{"bar"}; # prints 1
当你使用 increment operator ++
在一个值上,它是递增的:
$outer{"foo"}{"bar"}++; # the value is now 2
关于perl - 有一个 perl 散列是什么意思{}{},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517196/