文字列が次の順序で終わるように、文字列の配列を並べ替えたいと思います。
@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 の値はそのセットの一部になることを言及する必要がありましたが、必ずしもすべてが同じ順序であるとは限りません。