嗨,我需要对哈希键进行排序.
这是我的代码
#!/usr/bin/perl
use strict;
use warnings;
use v5.10.1;
use Data::Dumper;
my %FileRead_hash=('wan1','0','wan2', '0','wan3','1','wan4','1','wan5','0');
#print keys %FileRead_hash;
while (my ($key, $value) = each %FileRead_hash)
{
if ($value eq 0)
{
say $key. "success";
}
else
{
say $key. "failure";
}
}
Run Code Online (Sandbox Code Playgroud)
输出将是
wan4 failure
wan1 success
wan3 failure
wan5 success
wan2 success
Run Code Online (Sandbox Code Playgroud)
我试图在订单键中输出输出(如升序).
像这样的东西
wan1 failure
wan2 success
wan3 failure
wan4 success
wan5 success
Run Code Online (Sandbox Code Playgroud)
有人请建议我.谢谢
小智 6
您应该单独对键进行排序,然后使用它们来访问相应的值
use strict;
use warnings;
use v5.10;
my %file_read = (
wan1 => 0,
wan2 => 0,
wan3 => 1,
wan4 => 1,
wan5 => 0,
);
for my $key ( sort keys %file_read ) {
my $value = $file_read{$key};
if ( $value eq 0 ) {
say "$key success";
}
else {
say "$key failure";
}
}
Run Code Online (Sandbox Code Playgroud)
wan1 success
wan2 success
wan3 failure
wan4 failure
wan5 success
Run Code Online (Sandbox Code Playgroud)