$my_has-6ren">
gpt4 book ai didi

perl - 在 Perl 中,如何使用自定义顺序对哈希键进行排序?

转载 作者:行者123 更新时间:2023-12-03 03:14:54 25 4
gpt4 key购买 nike

我正在尝试处理文件的哈希值,并且该工作必须按特定顺序完成。大多数人会说列表可以这样排序:

for my $k (sort keys %my_hash)
{
print "$k=>$my_hash{$k}, ";
}

但是,我需要非字母顺序,实际上按键以单词开头,然后是 _,然后从 GdigitsLM、P、R、T 或 D 中的任意一个(例如 word_G.txtword_2.txt、 ...,word_P.txt)。有没有办法按自定义顺序排序?

最佳答案

Is there any way to sort by custom order?

是的。请参阅sort .

例如:

#!/usr/bin/env perl

use warnings; use strict;

my @order = qw(G 1 2 3 L M P R T D);

my %order_map = map { $order[$_] => $_ } 0 .. $#order;

my $pat = join '|', @order;

my @input = qw(word_P.txt word_2.txt word_G.txt);

my @sorted = sort {
my ($x, $y) = map /^word_($pat)[.]txt\z/, $a, $b;
$order_map{$x} <=> $order_map{$y}
} @input;

print "@sorted\n";

关于perl - 在 Perl 中,如何使用自定义顺序对哈希键进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8171528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com