#!/usr/bin/perl -w use strict; my $tasks = { "A_Task_2" => { priority => 2, }, "A_Task_1" => { priority => 1, }, "A_Task_3" => { priority => 3, }, "B_Task_1" => { priority => 1, task_depends => [ 'A_Task_1', 'A_Task_2', 'A_Task_3', 'A_Task_4', ], }, "A_Task_4" => { priority => 4, }, }; # for my $taskname (sort keys %$tasks) # works fine for my $taskname (sort { $tasks->{priority} <=> $tasks->{priority} } keys %$tasks ) # not working - can you see what I'm trying to do? { my $task = $tasks->{$taskname}; print $task->{priority} , "-", $taskname, "\n" ; # works sleep(1) ; }