package Retrenchment; use LWP::Simple; my @buzzwords = qw(java oo sdlc); my $mobile = new MobilePhone; while (not $employed) { sleep(86400/2); $self->unshaven(1); $self->{esteem}--; for (1..12) { my @options = getprint 'http://www.jobsearch.com.au'; foreach $option (@options) { foreach $buzzword (@buzzwords) { if (not grep /$buzzword/ $option) { # detailed parse of the job offer. $potentialOption = new DetailedExamination($option); next if not $potentialOption->cbd_area; next if not $potentialOption->reasonable_pay; next if not $potentialOption->perl_skills; # we may be on to something # PhoneCall is a special IO::Pipe; $phonecall = new PhoneCall($mobile, $potentialOption->number); $recruiter = $phonecall->endpoint; if ($recruiter->bullshitFactor > 50) { $phonecall->terminate; $self->{esteem}--; next; } else { $recruiter->apply($self); $self->{esteem}++; next; } } } } # accepts an IO::Pipe; my $call = $mobile->accept; my $endpoint = $call->endpoint; if ($endpoint->type eq 'recruiter') { # tentative $self->{esteem}++; my $recruiter = $endpoint; if ($recruiter->joboffer) { print "Search for work finally over."; exit(0); } else { # rejection. $self->{esteem}--; print $call "!@#$%\n"; $call->terminate; } } else { # probably commiserating with someone. # not defined in this package. handle_phone_call($endpoint); } } # Penfolds implements the Vino interface. my $sanity = new Penfolds({type=>'merlot'}); $self->drink($sanity); # no-op - immediately decremented at start of loop anyway. $self->{esteem}++; }