Mik*_*ike 5 arrays perl perl-data-structures
伪代码:
my @unsortedArray = { ["Harry", 10], ["Tim", 8], ["Joe", 3]};
my @sortedArray = ?????
Run Code Online (Sandbox Code Playgroud)
最终sortedArray应该基于col-2(整数)进行排序,处理与"人名"(col-1)的1对1关系.最终结果应如下所示:
sortedArray should be { ["Joe", 3], ["Tim", 8], ["Harry", 10] };
Run Code Online (Sandbox Code Playgroud)
您可以给出一个谓词sort
,即:一个被评估的函数,用于比较列表的元素.
my @unsorted = ( ["Harry", 10], ["Tim", 8], ["Joe", 3] );
my @sorted = sort { $a->[1] <=> $b->[1] } @unsorted;
Run Code Online (Sandbox Code Playgroud)
在谓词(花括号中的表达式)中,$a
并且$b
是外部列表中要比较的元素.
sort
只关注一维列表,所以它不会混淆外部列表元素的内部结构.因此,名称和数字之间的关系可以毫不费力地保留.
请参阅perldoc -f sort
并perldoc perlop
了解更多详情.