summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorYitzchak Scott-Thoennes <sthoenna@efn.org>2005-09-01 10:41:36 -0700
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2005-09-13 13:25:23 +0000
commit9a9798c21b8a0b65f8e87f35074ebb595dc00f1c (patch)
tree7844ebfa00e69c9218ffdb8baf48861bcb7ac7a3 /t
parent7579600832ee021c8e462ff004f49fb7da5fca41 (diff)
downloadperl-9a9798c21b8a0b65f8e87f35074ebb595dc00f1c.tar.gz
Allow non-arrowed form of chained subscripts after slices
Subject: Re: [perl #37039] perlref documentation about optional -> is too vague Date: Thu, 1 Sep 2005 17:41:36 -0700 Message-ID: <20050902004136.GA2656@efn.org> Date: Mon, 5 Sep 2005 08:10:20 -0700 Message-ID: <20050905151020.GA3556@efn.org> p4raw-id: //depot/perl@25399
Diffstat (limited to 't')
-rwxr-xr-xt/op/ref.t19
1 files changed, 18 insertions, 1 deletions
diff --git a/t/op/ref.t b/t/op/ref.t
index 53f3facac5..81a6543c34 100755
--- a/t/op/ref.t
+++ b/t/op/ref.t
@@ -8,7 +8,7 @@ BEGIN {
require 'test.pl';
use strict qw(refs subs);
-plan (89);
+plan (96);
# Test glob operations.
@@ -425,6 +425,23 @@ TODO: {
'Accessing via a different NUL-containing name gives nothing');
}
+# test derefs after list slice
+
+is ( ({foo => "bar"})[0]{foo}, "bar", 'hash deref from list slice w/o ->' );
+is ( ({foo => "bar"})[0]->{foo}, "bar", 'hash deref from list slice w/ ->' );
+is ( ([qw/foo bar/])[0][1], "bar", 'array deref from list slice w/o ->' );
+is ( ([qw/foo bar/])[0]->[1], "bar", 'array deref from list slice w/ ->' );
+is ( (sub {"bar"})[0](), "bar", 'code deref from list slice w/o ->' );
+is ( (sub {"bar"})[0]->(), "bar", 'code deref from list slice w/ ->' );
+
+# deref on empty list shouldn't autovivify
+{
+ local $@;
+ eval { ()[0]{foo} };
+ like ( "$@", "Can't use an undefined value as a HASH reference",
+ "deref of undef from list slice fails" );
+}
+
# Bit of a hack to make test.pl happy. There are 3 more tests after it leaves.
$test = curr_test();
curr_test($test + 3);