summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo van der Sanden <hv@iii.co.uk>1997-02-18 11:05:59 +0000
committerChip Salzenberg <chip@atlantic.net>1997-02-22 04:41:00 +1200
commitd53f8f1cc3de155a009198bbc7c01e2741aa70ac (patch)
treea09288f7c5dbb6716d7b5dba1c049d9595087541
parentea368a7c10bc6e18dd8f876577b54cc646eff77e (diff)
downloadperl-d53f8f1cc3de155a009198bbc7c01e2741aa70ac.tar.gz
Add test for grep() and wantarray
Subject: Re: subscript when wantarray In <199702172207.RAA20755@rio.atlantic.net>, Chip Salzenberg writes: :First, here's a patch that makes the first case print "2" [...] :Second, the reason that it prints "2" instead of "3" is that :C<(undef)[0]> evaluates to the empty list in an array context, :but to C<undef> in a scalar context. This is on purpose. Yep, I expected that. Patch worked fine here; below is an extra test using the same code as my original example. p5p-msgid: <199702181105.LAA17895@tyree.iii.co.uk>
-rwxr-xr-xt/op/misc.t7
1 files changed, 7 insertions, 0 deletions
diff --git a/t/op/misc.t b/t/op/misc.t
index 5e628ad67a..d7a62dccbb 100755
--- a/t/op/misc.t
+++ b/t/op/misc.t
@@ -259,6 +259,13 @@ print p::func()->groovy(), "\n"
EXPECT
really groovy
########
+@list = ([ 'one', 1 ], [ 'two', 2 ]);
+sub func { $num = shift; (grep $_->[1] == $num, @list)[0] }
+print scalar(map &func($_), 1 .. 3), " ",
+ scalar(map scalar &func($_), 1 .. 3), "\n";
+EXPECT
+2 3
+########
($k, $s) = qw(x 0);
@{$h{$k}} = qw(1 2 4);
for (@{$h{$k}}) { $s += $_; delete $h{$k} if ($_ == 2) }