Может быть, я что-то упустил. Сначала мне показалось, что это слишком легко. Я думал, что могу легко достичь этого, используя map{}sort{}map{}
, но теперь мне стало сложно.Как сортировать 2D-массив Perl?
Итак, наконец-то проблема у меня есть массив:
@array=(['b','e','d'],['s','a','f'],['g','i','h']);
и я хочу отсортированный массив как
@sorted_array=(['a','f','s'],['b','d','e'],['g','h','i']);
Я написал
##sort based on columns########
my @sorted_array= map{my @sorted=sort{$a cmp $b}@$_;[@sorted]}@array;
###sort on rows####
my @sorted_array= map{$_->[0]}sort{$a->[1] cmp $b->[1]} map{[$_,"@$_"]}@array;
Но я не был уверен, как чтобы обернуть его в один (для строк и столбца). Могу ли я добиться этого с помощью Schwartzian transform.
Было бы хорошая идея, чтобы показать нам код, который вы написали. –