@tobesorted=(b,a,d); @sorted=sort by_list @tobesorted; sub by_list{ @sortorder=(a,c,d,e,b); map { if ($a eq $sortorder[$_]){$ai=$_} } 0..$#sortorder; map { if ($b eq $sortorder[$_]){$bi=$_} } 0..$#sortorder; $ai <=> $bi; }