diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/IO/lib/IO/Handle.pm | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/ext/IO/lib/IO/Handle.pm b/ext/IO/lib/IO/Handle.pm index af3df7125d..7927641f7f 100644 --- a/ext/IO/lib/IO/Handle.pm +++ b/ext/IO/lib/IO/Handle.pm @@ -423,21 +423,19 @@ sub stat { ## sub autoflush { - my $old = new SelectSaver qualify($_[0], caller); + my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $|; $| = @_ > 1 ? $_[1] : 1; $prev; } sub output_field_separator { - my $old = new SelectSaver qualify($_[0], caller); my $prev = $,; $, = $_[1] if @_ > 1; $prev; } sub output_record_separator { - my $old = new SelectSaver qualify($_[0], caller); my $prev = $\; $\ = $_[1] if @_ > 1; $prev; @@ -450,55 +448,54 @@ sub input_record_separator { } sub input_line_number { + # localizing $. doesn't work as advertised. grrrrrr. my $prev = $.; $. = $_[1] if @_ > 1; $prev; } sub format_page_number { - my $old = new SelectSaver qualify($_[0], caller); + my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $%; $% = $_[1] if @_ > 1; $prev; } sub format_lines_per_page { - my $old = new SelectSaver qualify($_[0], caller); + my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $=; $= = $_[1] if @_ > 1; $prev; } sub format_lines_left { - my $old = new SelectSaver qualify($_[0], caller); + my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $-; $- = $_[1] if @_ > 1; $prev; } sub format_name { - my $old = new SelectSaver qualify($_[0], caller); + my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $~; $~ = qualify($_[1], caller) if @_ > 1; $prev; } sub format_top_name { - my $old = new SelectSaver qualify($_[0], caller); + my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $^; $^ = qualify($_[1], caller) if @_ > 1; $prev; } sub format_line_break_characters { - my $old = new SelectSaver qualify($_[0], caller); my $prev = $:; $: = $_[1] if @_ > 1; $prev; } sub format_formfeed { - my $old = new SelectSaver qualify($_[0], caller); my $prev = $^L; $^L = $_[1] if @_ > 1; $prev; |