sub by_priority { my @prio = (-1 => $a, 1 => $b); my @prfx = map { (qr/^$_/)x2 } qw(Organization Service FAQ); for(@prfx) { return $prio[0] if $prio[1] =~ /$_/; push @prio, splice @prio, 0, 2; # swap (-1 => $a) and (1 => $b) } return 0; }