如何在Perl中打印哈希结构?

Sou*_*abh 5 perl hash

例子:

%hash = (2010 => 21, 2009=> 9);

$hash = {
    a => {
        0 => {test => 1},
        1 => {test => 2},
        2 => {test => 3},
        3 => {test => 4},
    },
};
Run Code Online (Sandbox Code Playgroud)

如何打印哈希?

Dun*_*can 16

是否要打印整个哈希值或特定键值对?你期望的结果是什么?如果仅用于调试目的,您可以执行以下操作:

use Data::Dumper;
print Dumper %hash; # or \%hash to encapsulate it as a single hashref entity;
Run Code Online (Sandbox Code Playgroud)

each如果您不关心订购,可以使用该功能:

while ( my($key, $value) = each %hash ) {
    print "$key = $value\n";
}
Run Code Online (Sandbox Code Playgroud)

或者for/ foreachconstruct如果要对它进行排序:

for my $key ( sort keys %hash ) {
    print "$key = $hash{$key}\n";
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想要某些值,则可以使用哈希切片,例如:

print "@hash{qw{2009 2010}}\n";
Run Code Online (Sandbox Code Playgroud)

总是有不止一种方法可以做到这一点,虽然它有助于知道你要先做什么油炸:)


Pav*_*mar 0

使用keys , values功能

@keys = keys %hash ; 

@values = values %hash 
Run Code Online (Sandbox Code Playgroud)