my @priorities = qw(Organization FAQ Service); my $prio_top = join "|", map { "^$_" } @priorities; sub by_priority { # Return 0 on string identity return 0 if $a eq $b; return -1 if $a =~ /$prio_top/o; return 1 if $b =~ /$prio_top/o; # Alphabetical sort for the rest return $a cmp $b; }