On Tue, Jul 26, 2005 at 05:59:20PM -0400, Joshua Juran wrote:
> On Jul 26, 2005, at 5:35 PM, Abigail wrote:
> 
> >On Tue, Jul 26, 2005 at 05:37:39PM +0100, Nicholas Clark wrote:
> >>
> >>So is "wantarray's value is only specified within a subroutine or 
> >>method
> >>which was called directly by other perl code" true?
> >
> >No.
> >
> >    $ perl -wle 'print eval "wantarray"'
> >    1
> >    $
> >
> >
> >No subroutine, no method.
> 
> The eval is still a block scope from which one can return, so wantarray 
> indicates the context provided to the eval block, not to the -e script, 
> and print provides it a list context.
> 
> Compare:
> 
>       $ perl -wle 'print eval { eval { wantarray } }'
>       1
>       $ perl -wle 'print eval { eval { wantarray }; "" }'
>       Useless use of wantarray in void context at -e line 1.
>       
>       $
> 
> It would be helpful to have a term which means 'block from which one 
> can return', i.e. a sub or eval.  Suppose we use the word 'frame'.  
> Then I'd propose the statement above except with 'frame' instead of 
> 'subroutine or method'.


This whole exercise started because people found the current documentation
unclear. I don't think that introducing the concept "frame" is going to
make the documentation any more clear. Perhaps less.



Abigail

Attachment: pgpJTOe5zsMKq.pgp
Description: PGP signature

Reply via email to