diff options
Diffstat (limited to 't')
-rwxr-xr-x | t/op/tiehandle.t | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/t/op/tiehandle.t b/t/op/tiehandle.t index c679c580e6..735a25c071 100755 --- a/t/op/tiehandle.t +++ b/t/op/tiehandle.t @@ -10,9 +10,11 @@ my $data = ""; my @data = (); require './test.pl'; -plan(tests => 41); +plan(tests => 50); sub compare { + local $Level = $Level + 1; + return unless @expect; return ::fail() unless(@_ == @expect); @@ -163,6 +165,32 @@ is($r, 1); } { + package Bar::Say; + use feature 'say'; + use base qw(Implement); + + my $ors; + sub PRINT { + $ors = $\; + my $self = shift; + return $self->SUPER::PRINT(@_); + } + + my $fh = Symbol::gensym; + @expect = (TIEHANDLE => 'Bar::Say'); + ::ok( my $obj = tie *$fh, 'Bar::Say' ); + + local $\ = 'something'; + @expect = (PRINT => $obj, "stuff", "and", "things"); + ::ok( print $fh @expect[2..4] ); + ::is( $ors, 'something' ); + + ::ok( say $fh @expect[2..4] ); + ::is( $ors, "\n", 'say sets $\ to \n in PRINT' ); + ::is( $\, "something", " and it's localized" ); +} + +{ # Test for change #11536 package Foo; use strict; @@ -245,4 +273,3 @@ is($r, 1); sub READLINE { "foobar\n" } } - |