in reply to hash question

The scope of your my declarations is just the if-block. You need to declare them outside of it:
my $sched = new Schedule::Oncall; # Declare here: my (@sched, $oncall, %info, $person, $pemail, $fname, $emailaddy); #open(SESAME, "sbur.sched.$wunm"); if ( defined(open(SESAME, "sbur.sched.$wnum")) ) { # Don't declare them here, just use them: @sched = $sched->load ("file" => "sbur.sched.$wnum"); $oncall = $sched->oncall (time); %info = $sched->info ("$oncall"); $person = $sched->oncall (time); $pemail = $info{pager}->[0]; # assigned oncall pager email $fname = $info{fullname}->[0,1]; # assigns the full name of wh +o's oncall $emailaddy = $info{email}->[0]; # assigns the email of who's o +ncall } else { print "There isn't a sched file defined!\n"; } my %mail = ( To => "$fname <$emailaddy>", From => 'oncall script <oncall.pl@dcx.com>', Subject => 'Test message yepper', 'X-Mailer' => "Mail::Sendmail version $Mail::Sendmail::VERSION +", );

Caution: Contents may have been coded under pressure.

Replies are listed 'Best First'.
Re^2: hash question
by ikegami (Patriarch) on Jun 29, 2006 at 15:36 UTC
    That's no good, since $emailaddy is undefined. Fix:
    sub manually_page { system("/bin/bash -c clear"); # defines the week number for the current week 1 - 53 my $wnum = &UnixDate( "today", "%U" ); my $sched = new Schedule::Oncall; open(my $sesame_fh, "sbur.sched.$wnum") or die("Unable to open sched file: $!\n"); my @sched = $sched->load("file" => "sbur.sched.$wnum"); my $oncall = $sched->oncall(time); my %info = $sched->info("$oncall"); my $person = $sched->oncall(time); my $pemail = $info{pager}->[0]; # assigned oncall pager em +ail my $fname = $info{fullname}->[0,1]; # assigns the full name of + who's oncall my $emailaddy = $info{email}->[0]; # assigns the email of who +'s oncall my %mail = ( To => "$fname <$emailaddy>", From => 'oncall script <oncall.pl@dcx.com>', Subject => 'Test message yepper', 'X-Mailer' => "Mail::Sendmail version $Mail::Sendmail::VERSION +", ); ... }

    Why are checking if you can open the file where you do? load should return an error or die.

Re^2: hash question
by Akhenaton (Initiate) on Jun 29, 2006 at 14:47 UTC
    Thank you.