Perlコーディング初心者質問スレ Part 39
■ このスレッドは過去ログ倉庫に格納されています
0083nobodyさん
04/12/02 13:59:06ID:???試しに書いてみた。
sub csvsort {
my $arrayref = shift;
my @cmps;
while (my($n,$cmp) = splice(@_,0,2)) {
++$n;
$cmp =~ s/(\$[ab])/$1\->[$n]/g;
push @cmps, "($cmp)";
}
my $fcmp = eval("sub {" . join("||", @cmps) . "}");
map $_->[0], sort { &$fcmp } map [$_, split /,/], @$arrayref;
}
# @csvを「要素2を文字列昇順、要素0を数値降順」のオーダーでソート
@sorted = csvsort(\@csv, 2=>'$a cmp $b', 0=>'$b <=> $a');
■ このスレッドは過去ログ倉庫に格納されています