#!/usr/local/bin/perl use strict; use warnings; my @data = ('AC-BA91-CA', 'AB-BA92-CA', 'AD-BA90-CC', 'AA-BA93-CA', 'AA-BA89-CB'); my @sorted = map {$_->[0]} sort {$a->[2] cmp $b->[2]} map {[$_, split '-']} @data; print "$_\n" for @sorted;