sub new { my ($class, $self) = @_; unless (&work($self) || &sleep($self)) { $self->smoke; $self->cancer_probablity += rand(0.001); } bless ($self, undef); }
Surely you meant:
sub new { my ($class, $self) = @_; unless ($self->work() || $self->sleep()) { $self->smoke; $self->cancer_probablity += rand(0.001); } bless ($self, undef); }
This reads better to me:
unless I go to work, or I got to sleep....

My auto-biography in perl poetry would be a lot longer:

package Jarich; use strict; sub new { my ($class) = @_; bless ({}, $class); } sub freeload { my @needs = qw/money clothes shoes money books computers games bedding sleep time food/; print "Mum/Dad I need more ", $needs[rand(@needs)], "\n"; } sub annoy_parents { my @actions = ("hit sister", "kick dog", "whine", "whine", "whine", "need more", "beg", "borrow", "steal", "go out with a dag"); print $actions[rand(@actions)], "\n"; print $actions[rand(@actions)], "\n"; } sub live { my $self = shift; my @actions = ("drink", "cycle", "play", "paint", "eat"); # fun stuff on weekends. if(rand(7) <= 2) { print $actions[rand(@actions)], " "; $self->{cancer_probablity} += rand(0.0001); } else { $self->work(); } $self->sleep(); } sub work { print "bored bored bored bored bored: ke-ching! Money++"; } sub sleep { print "ZZZZZzzzzzzzzzzzzzzzzzzz\n"; } sub die { my $self = shift; if(rand(100) < 2) { return 1; } elsif($self->{cancer_probability} > 100) { return 1; } return 0; } #======================================================== package Main; my $jarich = new Jarich; my $age = 0; until ($age++ > 18) { $jarich->freeload() && $jarich->annoy_parents(); } until ($jarich->die()) { $jarich->live(); $age++; } print "RIP jarich. 1978-", 1978+$age, "\n";
But that's because I'm a pedant, and insist on code that does stuff. :) (My own version has moved all the arrays out of the functions and into the object but that doesn't look as nice.)

jarich


In reply to Re: Time to buy some pills by jarich
in thread Time to buy some pills by smitz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.