>>127
ほれ。

sub get_sortkey ($) {
return $1 if shift =~ /(?:A|B|C) \| ON \S+ \| OFF \S+ \| (\S+)/;
# ちなみにこのフォーマットならこっちのほうが良いかも
# return $& if shift =~ /[\d\.]+$/;
return 0;
}

my @sorted = sort {get_sortkey($a) <=> get_sortkey($b)} @src;