> -----Original Message----- > From: Dermot Paikkos [mailto:[EMAIL PROTECTED]] > Subject: Using strict and getting return values > > Hi Gurus,
Well, I'm definitely not a guru, but I think I might be able to help... :) > > I am trying to get tidy with my scripts and want to use Strict but am > having difficulty with return values from subroutines. I have the > following snippet: > > while (defined(my $i =<$fh>)) { > chomp($i); > my @a = split(/|/,$i); > my $last = $a[1]; > my $first = $a[0]; > if ( $name =~ /$last/i ) { > return($first,$last); > } > and get the error: > Global symbol "$last" requires explicit package name at > /var/www/perl/reply.pl line 16. Where is line 16? Can you post the whole code? How did you call the sub before getting the error? Without knowing that, I'm going to make an assumption that you did not assign values to the return from the sub. > > When I later: print "Hello $first $last\n"; > > I know it is out of the scope but I thought I could pass the > results of > a sub to main. > > What am I doing wrong?? > Dp. Assuming the name of your subroutine is SomeSub, the piece of your code that calls the sub should look something like: my ($FName, $LName) = SomeSub(); Then you can do: print "Hello $FName $LName\n"; Hope this helps.... Jason CONFIDENTIALITY NOTICE: ************************************************************************ The information contained in this ELECTRONIC MAIL transmission is confidential. It may also be privileged work product or proprietary information. This information is intended for the exclusive use of the addressee(s). If you are not the intended recipient, you are hereby notified that any use, disclosure, dissemination, distribution [other than to the addressee(s)], copying or taking of any action because of this information is strictly prohibited. ************************************************************************