Re: Huh? 4=3?

James Marshall <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <CAGEp=f0uOWtEprwyFOp5n9K_HEz_WyME6EJupJtC1egaK943DQ@mail.gmail.com>
It shows 6 because a comma-separated literal list, when interpreted as a
scalar, evaluates to the final value in the list, not the length of the
list.  If you evaluate "scalar(1,2,,4,,7)", it will equal 7.  That's the
comma operator at work-- even though it looks like a list (and both use
commas), it's really just a sequential set of expressions.

Cheers,
James


On Wed, May 8, 2013 at 5:14 PM, <[email protected]> wrote:

> On Wed, May 08, 2013 at 02:04:37PM -0400, Derek Jones wrote:
> > Huh?
> >
> > That produces 6 - as it should. What version of Perl are you working
> with?
>
> > On May 8, 2013, at 1:58 PM, [email protected] wrote:
> >
> > > scalar(1,2,,4,,6)
>
> You are right -- but this produces 4 first, as I had always thought it
> would, and then 6, as I don't quite understand.  I would never use
> that kind of expression, and I sorta maybe understand why it says 6,
> but only in hindsight.
>
>     #!/usr/bin/perl
>
>     my @ary = (1,2,,4,,6);
>     print "Step 1: ", scalar(@ary), "\n";
>     print "Step 2: ", scalar(1,2,,4,,6), "\n";
>
> --
>             ... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
>      Felix Finch: scarecrow repairman & rocket surgeon / [email protected]
>   GPG = E987 4493 C860 246C 3B1E  6477 7838 76E9 182E 8151 ITAR license
> #4933
> I've found a solution to Fermat's Last Theorem but I see I've run out of
> room o
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.