>>82
datasortを使う方向で考えてみました。
速度は遅いしメモリ食うしー。

sub bogosort
{
use sort stable;

my ($key, @data) = @_;
foreach(reverse(@{$key})){
my ($format, $order, $key) = @{$_};
@data = datasort($format, $order, $key, @data);
}
return @data;
}

my @new = bogosort([[1,1,0], [1,1,4]], @data);
要素0の数値昇順、要素4の数値昇順でソート。
$keyは[(1:数値/2:文字列),(1:昇順/2:降順),要素]の配列のリファレンス。