--- Jeff Pang <[EMAIL PROTECTED]> wrote:
> Hi,you can do it by passing the vars to the subroutine like:
>
> my $var = 20;
> &routine($var);
>
> sub routine {
> my $var = shift;
> print $var;
> }
>
I'll second this recommendation because it makes the subroutines more
flexible (what if they want a different variable in the future?). The
only change I would make is to strip the leading ampersand on the sub
call:
routine($var);
Using a leading ampersand leads to very strange bugs if you call a
subroutine with a leading ampersand and no parentheses because the
current value of @_ is then passed to the calling subroutine. It's
then very easy, when refactoring, to use &subname instead of
&subname(). Avoid that ampersand unless you know exactly why you're
using it :)
Cheers,
Ovid
--
Buy the book -- http://www.oreilly.com/catalog/perlhks/
Perl and CGI -- http://users.easystreet.com/ovid/cgi_course/
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>