#!/usr/bin/perl
END{ print ", finished looking busy!\n" }
use constant HIGH => 0;
use constant MED => 1;
use constant LOW => 2;
use constant URGENCY => 1;
use constant TEMPERO_SPACIAL_RELATIVITY => 2;
use constant NULL => '';
my @priorities = (
[ 'a', LOW, time()+11],
[ 'b', LOW, time()+10],
[ 'c', MED, time()+9 ],
[ 'd', MED, time()+8 ],
[ 'e', MED, time()+7 ],
[ 'f', MED, time()+6 ],
[ 'g', MED, time()+5 ],
[ 'h', HIGH, time()+4 ],
[ 'p', HIGH, time()+3 ],
[ 'a', HIGH, time()+2 ],
[ 'j', HIGH, time()+1 ],
);
do{
print STDOUT task($_)
} for sort
{ $a->[URGENCY] <=> $b->[URGENCY]
||
$a->[TEMPERO_SPACIAL_RELATIVITY] <=> $b->[TEMPERO_SPACIAL_RELATI
+VITY]
} @priorities;
sub task {
my $priority = pop; # goes the weasel
$priority->[URGENCY] == LOW && do{ sleep LOW, goto SLEEP_MORE };
$priority->[URGENCY] == MED && do{ sleep MED, goto SLEEP_MORE };
return $priority->[HIGH];
SLEEP_MORE:
NULL
}