my %order; /(?=.*(a))(?=.*(b))(?=.*(c))/ and @order{ qw/a b c/ } = @-[ 1 .. $#- ];