sub by_priority{my$r=qr/^(?:Service|Organisation|FAQ)/;$a cmp$b|($a=~$r&-1)+($b=~$r)} my @foo =( "Service", "FAQ", "BrowserUK","Organization1", "FAQ2", "Organization2"); print join " ", sort by_priority @foo; __END__ BrowserUK FAQ FAQ2 Organization1 Organization2 Service