use strict; use warnings; my %prns; for () { my ( $printer, $num, $cmd ) = split /:/; $prns{$num} = $printer; } my @ord = sort { $b <=> $a } keys %prns; print "Highest numbered printer is $prns{shift @ord}\n"; __DATA__ M08_amvpss09_MEDIP :275:lp -damvpss09 M07_amvpss09_MEDIP :279:lp -damvpss09 M09_amvpss09_MEDIP :278:lp -damvpss09 M01_amvpss09_MEDIP :2:lp -damvpss09 M04_amvpss09_MEDIP :1000:lp -damvpss09