2次元配列の任意の要素で配列をソート

例えば以下のような構造の2次元配列があったとする。

5 2010/11/10 アジ 刺身
4 2010/11/09 サバ 味噌煮
3 2010/11/08 アナゴ 蒲焼き
2 2010/11/07 カレイ 煮付け
1 2010/11/06 アリゲーターガー 姿焼き

*区切り文字は「<>」としておく

ここでこの配列を、魚の名前で手っ取り早くソートするにはどうしたらいいか。

要素を抜き出したり、並び替えたりするのはうざいので、以下のようにしてしまう。

2次元配列の任意の要素でソート

open(IN,"DataFileName");
 @current_array = <IN>; close(IN);	#元の配列
 @sorted_array = sort({(split "<>", $a)[2] cmp (split "<>", $b)[2]} @current_array);
これで @sorted_array にソートされた配列が格納される。

これ、あんまり解説ページとかに載ってないんだよなあ、便利なのに。

2019/01/04(金)
栗生海水浴場、侮れずorz
2018/12/31(月)
ロクな魚が釣れんですたい
2018/12/25(火)
栗生でのんびり
Keyword : 2次元配列,任意の要素,ソート,sort

CopyRight 2004 - 2019 © Nap.st all right reserved.