diff options
author | Yitzchak Scott-Thoennes <sthoenna@efn.org> | 2005-09-01 10:41:36 -0700 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2005-09-13 13:25:23 +0000 |
commit | 9a9798c21b8a0b65f8e87f35074ebb595dc00f1c (patch) | |
tree | 7844ebfa00e69c9218ffdb8baf48861bcb7ac7a3 /t | |
parent | 7579600832ee021c8e462ff004f49fb7da5fca41 (diff) | |
download | perl-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-x | t/op/ref.t | 19 |
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); |