diff options
author | Slaven Rezic <slaven@rezic.de> | 2002-11-30 01:07:05 +0100 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2002-12-08 22:04:39 +0000 |
commit | f3fd7796410b671022d50f0c339d72cecaf4eef7 (patch) | |
tree | b30f08bab8a7418fd6113037f8da41f818b727ef | |
parent | e336476d0b01e142c1024f208616adee0159940b (diff) | |
download | perl-f3fd7796410b671022d50f0c339d72cecaf4eef7.tar.gz |
Re: [perl #18165] "0" fails as right-hand argument to ..
Message-ID: <8765ugnffq.fsf@vran.herceg.de>
p4raw-id: //depot/perl@18264
-rw-r--r-- | pp_ctl.c | 4 | ||||
-rwxr-xr-x | t/cmd/for.t | 7 |
2 files changed, 8 insertions, 3 deletions
@@ -1690,11 +1690,11 @@ PP(pp_enteriter) cx->blk_loop.iterary = (AV*)SvREFCNT_inc(POPs); if (SvTYPE(cx->blk_loop.iterary) != SVt_PVAV) { dPOPss; + /* See comment in pp_flop() */ if (SvNIOKp(sv) || !SvPOKp(sv) || SvNIOKp(cx->blk_loop.iterary) || !SvPOKp(cx->blk_loop.iterary) || (looks_like_number(sv) && *SvPVX(sv) != '0' && - looks_like_number((SV*)cx->blk_loop.iterary) && - *SvPVX(cx->blk_loop.iterary) != '0')) + looks_like_number((SV*)cx->blk_loop.iterary))) { if (SvNV(sv) < IV_MIN || SvNV((SV*)cx->blk_loop.iterary) >= IV_MAX) diff --git a/t/cmd/for.t b/t/cmd/for.t index 90b5ff0b4f..3275c71d2a 100755 --- a/t/cmd/for.t +++ b/t/cmd/for.t @@ -1,6 +1,6 @@ #!./perl -print "1..11\n"; +print "1..12\n"; for ($i = 0; $i <= 10; $i++) { $x[$i] = $i; @@ -66,3 +66,8 @@ foreach $b (bar()) { } print $a == 7 ? "ok" : "not ok", " 11\n"; +$loop_count = 0; +for ("-3" .. "0") { + $loop_count++; +} +print $loop_count == 4 ? "ok" : "not ok", " 12\n"; |