We have explicitly removed all wantarray behavior from Mojolicious. In a
web context it basically will always be a security vulnerability waiting
for an unsuspecting application author. In PDL it is more likely to be a
bug in waiting than a vuln but you never know.

On Sun, Oct 16, 2016 at 8:20 AM David Mertens <dcmertens.p...@gmail.com>
wrote:

> Also, this works (append to end of Karl's example):
>
> --------
> ($y2) = interpolate $x2, $x, $y;
> --------
>
> These two routines differ in the context they expect to return to, and
> interpolate's behavior is a known Perl wart. Stever Haryanto gave a nice
> discussion of this Perl wart:
> http://blogs.perl.org/users/steven_haryanto/2012/09/the-comma-operator.html
>
> To fix this, we should introduce yet another function with behavior that
> made more sense in scalar vs list context. These routines, and their
> confusing application of Perl's context, have been in the PDL codebase for
> a long time. Presumably some folks have learned (probably the hard way) how
> to work around these. I wouldn't want to pull the rug out from under them
> now.
>
> One word of warning about context-aware return values. I have written some
> functions that do this, and I regularly find myself wanting the scalar
> return value in list contexts like building a list of key/value pairs for a
> hash. In that case, I must say "scalar(func(...))". I find myself doing
> this more often than not, and wish I had never created the scalar/list
> differentiation.
>
> David
>
> On Sat, Oct 15, 2016 at 5:53 PM, Chris Marshall <devel.chm...@gmail.com>
> wrote:
>
> interpol() seems to be implemented in terms of
> interpolate() already.  Does seem a bit confusing.
> Maybe the two routines could be merged into a
> "smarter" interpolate()...
>
> --Chris
>
> On 10/15/2016 05:18, Karl Glazebrook wrote:
> > Seems to me we should fix this inconsistency in usage?
> >
> > - Karl
> >
> > use PDL;
> > $x = sequence(100);
> > $y = $x**2;
> > $x2 = sequence(10)*10;
> >
> > # This works
> >
> > $y2 = interpol $x2, $x, $y;
> > print $y2, "\n";
> >
> > # This does not work
> > $y2 = interpolate $x2, $x, $y;
> > print $y2, "\n";
> > # But this does
> > ($y2,$err) = interpolate $x2, $x, $y;
> > print $y2, "\n";
> >
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> pdl-devel mailing list
> pdl-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pdl-devel
>
>
>
>
> --
>  "Debugging is twice as hard as writing the code in the first place.
>   Therefore, if you write the code as cleverly as possible, you are,
>   by definition, not smart enough to debug it." -- Brian Kernighan
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> pdl-devel mailing list
> pdl-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pdl-devel
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
pdl-devel mailing list
pdl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-devel

Reply via email to