#!/usr/bin/perl -w use strict; my %products; $products{Cat}{Pro} = { 70 => {Name => 'Grey brown mix', Qua => 3}, 72 => {Name => 'Green mix', Qua => 10}, 74 => {Name => 'Fuschia mix', Qua => 8}, 76 => {Name => 'Mauve mix', Qua => 11}, 77 => {Name => 'Blue mix', Qua => 6}, 90 => {Name => 'Beige pink mix', Qua => 12}, 91 => {Name => 'Peach cream mix', Qua => 8}, 92 => {Name => 'Silver cream mix', Qua => 10}, 93 => {Name => 'Beige blue mix', Qua => 9}, 78 => {Name => 'Black white mix', Qua => 0}, 75 => {Name => 'Red mix', Qua => 0}, 73 => {Name => 'Aqua mix', Qua => 0}, 71 => {Name => 'Beige mix', Qua => 0}, }; foreach my $colour ( sort {!!$products{Cat}{Pro}{$b}{Qua} <=> !!$products{Cat}{Pro}{$a}{Qua} || $a <=> $b} keys %{$products{Cat}{Pro}} ) { printf "%-2s %-22s %s\n", $colour, "($products{Cat}{Pro}{$colour}{Name})", $products{Cat}{Pro}{$colour}{Qua}; } 1; __END__