"Uri Guttman" <[email protected]> writes:
> HP> The output from the script below:
> HP> Shows 6 elements arrive in dispt($g, @ar) as @_. But when sub N(@_)
> HP> is called, no variables arrive there. @_ is empty. When it seems like
> HP> 5 elements should have arrived there
>
> well, it helps if you actually pass in arguments. @_ is NOT a global.FF
>
> HP> my $code = $dispt{$selection} || $dispt{'error'} ;
> HP> $code->();
>
> you aren't passing anything in to $code. you need to put something in
> the () which then is set in the @_ of the called sub.
As usual, I'm a little confused here. First, what is a `global.FF'?
And why would it matter that `...@_' is not global when its content was
placed into a sub function?
Inside dispt {...the sub function @_...} `...@_' is alive and well
(I'm changing the name of the hash `%dispt' (inside sub dispt {...})to
%hash, it was probably a poor choice of names)
------- --------- ---=--- --------- --------
#!/blah/blah/perl
## out here in global country `...@_' is unknown
dispt($var,@ar);
sub dispt { ...
## @_ is alive here containing $var,@ar.
%hash = ( print N(@_ # `...@_' is dead here at the N(@_) call)
);
...}
which is also inside sub dispt {the sub function}. Where does global
come in?
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/