> @file(
> 'a,1,あいうえお,546',
> 'c,3,さしすせそ,158',
> 'b,2,かきくけこ,2055',
> 'd,4,たちつてと,33',
> )
じゃなく、
@file = (
'a,1,あいうえお,546',
'c,3,さしすせそ,158',
'b,2,かきくけこ,2055',
'd,4,たちつてと,33',
)
だね♪(にこやかに)
でこの場合のソート方法はかなり厄介。なので多分これでよいだろうと思われるソース書いたので、参考にしてな
# ソートしたい要素だけを抜き出す
foreach $file(@file){
@ELEMENT = split(/,/,$file);
push (@temp,$ELEMENT[1]);
}
# 抜き出した要素でソート
sort {$a <=> $b} @temp;
# ソート順に元配列を並び替え
foreach $temp(@temp){
foreach $file(@file){
@ELEMENT = split(/,/,$file);
if ($temp eq $ELEMENT[1]){
push (@file_2,$file);
}
}
}
とやると多分、うまく行くはず。
ただ同じ配列名に格納すると無限ループになるので、注意が必要だねっ☆
|