#!/usr/bin/env perl use strict; use warnings; my @in = ; my @sorted = map { $_->[1] } sort { $a->[0] cmp $b->[0] } map { /^(?:[oa] )?([^|]+)/; [$1, $_] } @in; print @sorted; __DATA__ # Drink a cerveja|beer a laranja|orange beber|to drink o copo de vinho|glass of wine o copo|glass or cup o sumo|juice