- or download this
/^(?=.*a)(?=.*b)(?=.*c).*d/
or die;
- or download this
my %order;
@order{qw( a b c d )} =
...
or die;
my @ordered = sort { $order{$a} <=> $order{$b} } keys %order;
- or download this
my @order = map length, /^(?=(.*?)a)(?=(.*?)b)(?=(.*?)c)(.*?)d/
or die;
...
my @ordered = ( qw( a b c d ) )[
sort { $order[$a] <=> $order[$b] } 0..$#order
];
- or download this
my @unordered = qw( a b c d );
...
my @ordered = @unordered[
sort { $order[$a] <=> $order[$b] } 0..$#order
];