我正在尝试按元素部分的大小对数组进行排序。元素遵循一个模式x/y[.../z]
,我希望它们按照元素数量排序。例如,1/2
在拆分/
后有两个元素,12/365/85
有三个元素。我似乎无法弄清楚在这样一个看似简单的代码片段中出了什么问题。
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @dummy_arr = ['12345/3/365/45/12', '1/2', '3/2', '1/2/3', '2/3/4'];
@dummy_arr = sort { scalar ( split /\//, $a ) < scalar ( split /\//, $b ) } @dummy_arr;
print Dumper(\@dummy_arr);
输出:
$VAR1 = [
[
'12345/3/365/45/12',
'1/2',
'3/2',
'1/2/3',
'2/3/4'
]
];
期望输出:
$VAR1 = [
'1/2',
'3/2',
'1/2/3',
'2/3/4',
'12345/3/365/45/12'
];