[Date Prev][Date Next][Thread Prev][Thread Next]
[Search]
[Date Index]
[Thread Index]
Re: [FWP] A Perl curiosity
In article <20000303093207.A11207@pimlott.ne.mediaone.net>,
Andrew Pimlott <andrew@pimlott.ne.mediaone.net> wrote:
>> I guess that's what Perl gets for blurring C's iron-clad distinction
>> between statement and expression.
>
>Even if such blurring exists (for which I see no evidence, though
>all I read is perlsyn, not the C standard), it has nothing to do
>with the unexpected output. The following (which I think you'll
>agree exhibits no blurring) produces the same output:
>
>#!perl -wl
>@array = (1,0,0,1,0);
>print scalar grep { if (!$_) { 1 } } @array;
>print scalar grep { unless ($_) { 1 } } @array;
>__END__
>
>The key is Perl's implicit return value, which has no analog in C.
That is the blurring to which I referred. In C a "statement" has
no return value and may not be used where an expression is expected.
In Perl, a "statement" always has a return value (even do {}) and
may sometimes (but not always) be used as an expression.
==== Want to unsubscribe from Fun With Perl? Well, if you insist...
==== Send email to <fwp-request@technofile.org> with message _body_
==== unsubscribe