#!/usr/bin/perl

sub add_entry {
    package Priority_Queue;
    ($priority,$message) = @_;
    for ($i = 0; $i <= $#queue; $i++) {
	last if $queue[$i] < $priority;
    }
    splice(@queue, $i, 0, "$priority;$message");
}

sub next_entry {
    package Priority_Queue;
    if (@queue) {
	$message = shift(@queue);
	split(/;/, $message, 2);   # return (priority, message)
    }
    else {
	();                        # return null list
    }
}

&add_entry(23,"Shear the sheep");
&add_entry(86,"Bathe the camels");
&add_entry(51,"Write my memoirs");
&add_entry(77,"Hack on begat s'more");

print "Your jobs:\n";
while (($priority, $message) = &next_entry) {
    print ++$i, '. ', $message, "\n";
}
