#!/usr/bin/perl while ($test = ) { chomp($test); @marks = split(/:/, $test); $mark{@marks[0]} = @marks[1]; } print "Marks list (in marks order):\n"; foreach $m (sort {$mark{$a} <=> $mark{$b} } keys %mark) { print "$m => $mark{$m}\n"; } print "\n"; print "Marks list (in alphabetical order):\n"; foreach $m (sort keys %mark) { print "$m => $mark{$m}\n"; } print "\n"; print "Marks list (in reverse marks order):\n"; foreach $m (sort {$mark{$b} <=> $mark{$a} } keys %mark) { print "$m => $mark{$m}\n"; }