home *** CD-ROM | disk | FTP | other *** search
- #!/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";
- }
-