我希望对字符串数组进行排序,以便字符串按以下顺序结束:
@set = ('oneM', 'twoM', 'threeM', 'sixM', 'oneY', 'twoY', 'oldest');
您可能会注意到,这些代表时间段oneM
,第一个月也是如此。我的问题是我想按时间段排序,但是对于字符串,我不能只使用“排序”,所以我创建了这个散列来表达字符串应该如何排序:
my %comparison = (
oneM => 1,
twoM => 2,
threeM => 3,
sixM => 6,
oneY => 12,
twoY => 24,
oldest => 25,
);
我希望这能让我的生活更轻松,我可以做一些事情,例如:
foreach my $s (@set) {
foreach my $k (%comparison) {
if ($s eq $k) {
something something something
我感觉这是一种冗长的做事方式,而且我实际上不确定一旦找到等效项后我将如何对其进行排序……我想我有点想念自己的情节所以任何帮助将不胜感激
根据要求,预期的输出将类似于上面@set 中的显示方式。我应该提到@set 中的值将是该集合的一部分,但不一定是所有这些值,而且顺序也不相同。