in reply to Re: Propagating calling context
in thread Propagating calling context

Lemme guess, untested code? :-)

I wrote the same thing, tried it with his test and realized that he differentiated between scalar and void context. FWIW my first try involved:

push my @result, wantarray ? &inner_func() : scalar &inner_func();
then I realized the problem, and came up with:
sub outer_func { my @result; defined(wantarray) ? (push @result, wantarray ? &inner_func() : scalar &inner_func()) : &inner_func(); # do some other stuff return (wantarray ? (@result) : $result[0]); }
Ick. :-( There are times you should be verbose. This is one of them...

Personally I think your approach of separating the cases is cleaner. But honestly I have never once encountered a situation where I needed to propagate context in this manner...

Replies are listed 'Best First'.
RE: RE (tilly) 2: Propagating calling context
by merlyn (Sage) on Aug 22, 2000 at 15:43 UTC
    Personally I think your approach of separating the cases is cleaner. But honestly I have never once encountered a situation where I needed to propagate context in this manner...
    Oddly enough, I did. In the ill-fated chat2.pl. {grin}

    -- Randal L. Schwartz, Perl hacker