use strict;
use warnings;
my @items = (["dog", 20], ["desk", 10], ["cow", 150]);
print "By name:\n";
print "$_->[0]: $_->[1]\n" for sort {$a->[0] cmp $b->[0]} @items;
print "\nBy weight:\n";
print "$_->[0]: $_->[1]\n" for sort {$a->[1] <=> $b->[1]} @items;
####
use strict;
use warnings;
my %items = (dog => 20, desk => 10, cow => 150);
print "By name:\n";
print "$_: $items{$_}\n" for sort {$a cmp $b} keys %items;
print "\nBy weight:\n";
print "$_: $items{$_}\n" for sort {$items{$a} <=> $items{$b}} keys %items;
####
By name:
cow: 150
desk: 10
dog: 20
By weight:
desk: 10
dog: 20
cow: 150