$etcpw = { 'blah' => 'blah:x:3:1:blah:/home/blah:/sbin/nologin', 'tra' => 'tra:x:1:1:tra:/home/tra:/sbin/nologin', 'la' => 'la:x:2:1:la:/home/la:/sbin/nologin' }; #### map { print "$etcpw->{$_}\n"; } sort { ($etcpw->{$a} =~ /:(\d+)/) <=> ($etcpw->{$b} =~ /:(\d+)/) } keys %{$etcpw};