in reply to Re^2: Return Value of List-Producing Elements in Scalar Context
in thread Return Value of List-Producing Elements in Scalar Context

I wonder if a listify operator could help avoiding bugs when changing the return expression of a sub.

It might help (and indeed, I think Perl6 has the list operator — but don't quote me), but the context in which the  .. and  ... range/flip-flop operators act is usually pretty clear. scalar alone serves pretty well in this case and in general since it's very easy to induce list context, so easy that one almost gets the impression it's the default!

Replies are listed 'Best First'.
Re^4: Return Value of List-Producing Elements in Scalar Context
by LanX (Saint) on Jul 28, 2013 at 18:09 UTC
    I was already bitten by a case where I wanted to return a list like 1,2,3 from a sub and replaced it with  1..3 which acted differently in scalar context.

    True I should have used wantarray, but one intuitively expect a constant behavior...

    (I had different code-branches which returned and I didn't want to duplicate wantarray checks for each branch.)

    FWIW, here a possible implementation of listify: Re^3: wantarray alternative

    Maybe something like l_return (always return list) and a_return (always return array) could help...

    Cheers Rolf

    ( addicted to the Perl Programming Language)