From 938d797b84467ebbaed432da72d1d7f7bb266110 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Tue, 8 Dec 2015 16:58:05 -0500 Subject: [PATCH] Avoid odd portability problem in TestLib.pm's slurp_file function. For unclear reasons, this function doesn't always read the expected data in some old Perl versions. Rewriting it to avoid use of ARGV seems to dodge the problem, and this version is clearer anyway if you ask me. In passing, also improve error message in adjacent append_to_file function. --- src/test/perl/TestLib.pm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm index da67f33c7e3..3d11cbb4535 100644 --- a/src/test/perl/TestLib.pm +++ b/src/test/perl/TestLib.pm @@ -158,9 +158,12 @@ sub slurp_dir sub slurp_file { + my ($filename) = @_; local $/; - local @ARGV = @_; - my $contents = <>; + open(my $in, '<', $filename) + or die "could not read \"$filename\": $!"; + my $contents = <$in>; + close $in; $contents =~ s/\r//g if $Config{osname} eq 'msys'; return $contents; } @@ -168,8 +171,8 @@ sub slurp_file sub append_to_file { my ($filename, $str) = @_; - - open my $fh, ">>", $filename or die "could not open \"$filename\": $!"; + open my $fh, ">>", $filename + or die "could not write \"$filename\": $!"; print $fh $str; close $fh; } -- GitLab