This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
don't use qualify() in class methods
authorAlbert Dvornik <bert@genscan.com>
Wed, 22 Jul 1998 15:14:46 +0000 (11:14 -0400)
committerGurusamy Sarathy <gsar@cpan.org>
Wed, 22 Jul 1998 19:37:41 +0000 (19:37 +0000)
Message-Id: <tqbtqhlmu1.fsf_-_@puma.genscan.com>
Subject: [PATCH 5.005-MAYBE] Bug in IO::Handle->input_record_separator

p4raw-id: //depot/perl@1645

ext/IO/lib/IO/Handle.pm

index af3df71..7927641 100644 (file)
@@ -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;