在Perl中:
my %members = ( "fools" => 6,
"monsters" => 2,
"weirdos" => 1,
"coders" => 1,
"betrayers" => 1, );
Run Code Online (Sandbox Code Playgroud)
我写的时候:
my @values_members = values %members;
Run Code Online (Sandbox Code Playgroud)
数组中元素的位置不会是6,2,1,1,1(代码中"出现"的位置).它将是随机的或接近随机的.
我想要一个这样的功能:
my values_members = get_values_with_position_as_appears_in_code ( %members );
Run Code Online (Sandbox Code Playgroud)
给
( 6, 2, 1, 1, 1 );
Run Code Online (Sandbox Code Playgroud)
这可能吗?
Perl哈希是无序的,因此没有特别保证您将从哈希中获取内容的顺序.
您可以使用Tie :: IxHash,它将为您提供跟踪其插入顺序的哈希.
use strict;
use warnings;
use Tie::IxHash;
tie my %members, 'Tie::IxHash', ( "fools" => 6,
"monsters" => 2,
"weirdos" => 1,
"coders" => 1,
"betrayers" => 1, );
my @values = values %members;
print join "\n" @values;
Run Code Online (Sandbox Code Playgroud)
输出:
6
2
1
1
1
Run Code Online (Sandbox Code Playgroud)