Browse Source

tests: switch to 3-argument open in test suite

The perl 2-argument open has been considered not-quite-deprecated since
the 3-argument form was introduced almost a quarter century ago.
Dan Fandrich 1 year ago
parent
commit
0e3ae25337

+ 10 - 11
tests/check-deprecated.pl

@@ -57,8 +57,8 @@ sub scan_header {
     my $incomment = 0;
     my $inenum = 0;
 
-    open H, "<$f";
-    while(<H>) {
+    open(my $h, "<", "$f");
+    while(<$h>) {
       s/^\s*(.*?)\s*$/$1/;      # Trim.
       # Remove multi-line comment trail.
       if($incomment) {
@@ -138,7 +138,7 @@ sub scan_header {
         $inenum = 0;
       }
     }
-    close H;
+    close $h;
 }
 
 # Scan function man page for options.
@@ -149,8 +149,8 @@ sub scan_man_for_opts {
     my $opt = "";
     my $line = "";
 
-    open M, "<$f";
-    while(<M>) {
+    open(my $m, "<", "$f");
+    while(<$m>) {
       if($_ =~ /^\./) {
         # roff directive found: end current option paragraph.
         my $o = $opt;
@@ -177,16 +177,15 @@ sub scan_man_for_opts {
         $line .= $_;
       }
     }
-    close M;
+    close $m;
 }
 
 # Scan man page for deprecation in DESCRIPTION and/or AVAILABILITY sections.
 sub scan_man_page {
     my ($path, $sym, $table)=@_;
     my $version = "X";
-    my $fh;
 
-    if(open $fh, "<$path") {
+    if(open(my $fh, "<", "$path")) {
       my $section = "";
       my $line = "";
 
@@ -238,9 +237,9 @@ sub scan_man_page {
 
 
 # Read symbols-in-versions.
-open(F, "<$libdocdir/symbols-in-versions") ||
+open(my $fh, "<", "$libdocdir/symbols-in-versions") ||
   die "$libdocdir/symbols-in-versions";
-while(<F>) {
+while(<$fh>) {
   if($_ =~ /^((?:CURL|LIBCURL)\S+)\s+\S+\s*(\S*)\s*(\S*)$/) {
     if($3 eq "") {
       $syminver{$1} = "X";
@@ -250,7 +249,7 @@ while(<F>) {
     }
   }
 }
-close(F);
+close($fh);
 
 # Get header file names,
 opendir(my $dh, $incdir) || die "Can't opendir $incdir";

+ 6 - 6
tests/error-codes.pl

@@ -35,8 +35,8 @@ my %error; # from the include file
 my %docs; # from libcurl-errors.3
 
 sub getdocserrors {
-    open(F, "<$root/docs/libcurl/libcurl-errors.3");
-    while(<F>) {
+    open(my $f, "<", "$root/docs/libcurl/libcurl-errors.3");
+    while(<$f>) {
         if($_ =~ /^.IP \"(CURL[EM]_[^ \t\"]*)/) {
             my ($symbol) = ($1);
             if($symbol =~ /OBSOLETE/) {
@@ -47,12 +47,12 @@ sub getdocserrors {
             }
         }
     }
-    close(F);
+    close($f);
 }
 
 sub getincludeerrors {
-    open(F, "<$root/docs/libcurl/symbols-in-versions");
-    while(<F>) {
+    open(my $f, "<", "$root/docs/libcurl/symbols-in-versions");
+    while(<$f>) {
         if($_ =~ /^(CURL[EM]_[^ \t]*)[ \t]*([0-9.]+)[ \t]*(.*)/) {
             my ($symbol, $added, $rest) = ($1,$2,$3);
             if($rest =~ /^([0-9.]+)/) {
@@ -63,7 +63,7 @@ sub getincludeerrors {
             }
         }
     }
-    close(F);
+    close($f);
 }
 
 getincludeerrors();

+ 5 - 4
tests/ftp.pm

@@ -79,9 +79,9 @@ sub pidfromfile {
     my $pidfile = $_[0];
     my $pid = 0;
 
-    if(-f $pidfile && -s $pidfile && open(PIDFH, "<$pidfile")) {
-        $pid = 0 + <PIDFH>;
-        close(PIDFH);
+    if(-f $pidfile && -s $pidfile && open(my $pidfh, "<", "$pidfile")) {
+        $pid = 0 + <$pidfh>;
+        close($pidfh);
         $pid = 0 if($pid < 0);
     }
     return $pid;
@@ -380,7 +380,8 @@ sub killallsockfilters {
 sub set_advisor_read_lock {
     my ($filename) = @_;
 
-    if(open(FILEH, ">$filename") && close(FILEH)) {
+    my $fileh;
+    if(open($fileh, ">", "$filename") && close($fileh)) {
         return;
     }
     printf "Error creating lock file $filename error: $!";

+ 28 - 28
tests/ftpserver.pl

@@ -224,20 +224,20 @@ sub logmsg {
             localtime($seconds);
         $now = sprintf("%02d:%02d:%02d ", $hour, $min, $sec);
     }
-    if(open(LOGFILEFH, ">>$logfile")) {
-        print LOGFILEFH $now;
-        print LOGFILEFH @_;
-        close(LOGFILEFH);
+    if(open(my $logfilefh, ">>", "$logfile")) {
+        print $logfilefh $now;
+        print $logfilefh @_;
+        close($logfilefh);
     }
 }
 
 sub ftpmsg {
   # append to the server.input file
-  open(INPUT, ">>log/server$idstr.input") ||
+  open(my $input, ">>", "log/server$idstr.input") ||
     logmsg "failed to open log/server$idstr.input\n";
 
-  print INPUT @_;
-  close(INPUT);
+  print $input @_;
+  close($input);
 
   # use this, open->print->close system only to make the file
   # open as little as possible, to make the test suite run
@@ -915,7 +915,7 @@ sub DATA_smtp {
 
         logmsg "Store test number $testno in $filename\n";
 
-        open(FILE, ">$filename") ||
+        open(my $file, ">", "$filename") ||
             return 0; # failed to open output
 
         my $line;
@@ -936,7 +936,7 @@ sub DATA_smtp {
                 read_mainsockf(\$line, $size);
 
                 $ulsize += $size;
-                print FILE $line if(!$nosave);
+                print $file $line if(!$nosave);
 
                 $raw .= $line;
                 if($raw =~ /(?:^|\x0d\x0a)\x2e\x0d\x0a/) {
@@ -963,10 +963,10 @@ sub DATA_smtp {
         }
 
         if($nosave) {
-            print FILE "$ulsize bytes would've been stored here\n";
+            print $file "$ulsize bytes would've been stored here\n";
         }
 
-        close(FILE);
+        close($file);
 
         logmsg "received $ulsize bytes upload\n";
 
@@ -1264,7 +1264,7 @@ sub APPEND_imap {
 
         logmsg "Store test number $testno in $filename\n";
 
-        open(FILE, ">$filename") ||
+        open(my $file, ">", "$filename") ||
             return 0; # failed to open output
 
         my $received = 0;
@@ -1285,7 +1285,7 @@ sub APPEND_imap {
 
                 if($datasize > 0) {
                     logmsg "> Appending $datasize bytes to file\n";
-                    print FILE substr($line, 0, $datasize) if(!$nosave);
+                    print $file substr($line, 0, $datasize) if(!$nosave);
                     $line = substr($line, $datasize);
 
                     $received += $datasize;
@@ -1309,10 +1309,10 @@ sub APPEND_imap {
         }
 
         if($nosave) {
-            print FILE "$size bytes would've been stored here\n";
+            print $file "$size bytes would've been stored here\n";
         }
 
-        close(FILE);
+        close($file);
 
         logmsg "received $size bytes upload\n";
 
@@ -2392,7 +2392,7 @@ sub STOR_ftp {
 
     sendcontrol "125 Gimme gimme gimme!\r\n";
 
-    open(FILE, ">$filename") ||
+    open(my $file, ">", "$filename") ||
         return 0; # failed to open output
 
     my $line;
@@ -2413,7 +2413,7 @@ sub STOR_ftp {
             #print STDERR "  GOT: $size bytes\n";
 
             $ulsize += $size;
-            print FILE $line if(!$nosave);
+            print $file $line if(!$nosave);
             logmsg "> Appending $size bytes to file\n";
         }
         elsif($line eq "DISC\n") {
@@ -2431,9 +2431,9 @@ sub STOR_ftp {
         }
     }
     if($nosave) {
-        print FILE "$ulsize bytes would've been stored here\n";
+        print $file "$ulsize bytes would've been stored here\n";
     }
-    close(FILE);
+    close($file);
     close_dataconn($disc);
     logmsg "received $ulsize bytes upload\n";
     if($storeresp) {
@@ -2815,12 +2815,12 @@ sub customize {
     %customcount = ();  #
     %delayreply = ();   #
 
-    open(CUSTOM, "<log/ftpserver.cmd") ||
+    open(my $custom, "<", "log/ftpserver.cmd") ||
         return 1;
 
     logmsg "FTPD: Getting commands from log/ftpserver.cmd\n";
 
-    while(<CUSTOM>) {
+    while(<$custom>) {
         if($_ =~ /REPLY \"([A-Z]+ [A-Za-z0-9+-\/=\*. ]+)\" (.*)/) {
             $fulltextreply{$1}=eval "qq{$2}";
             logmsg "FTPD: set custom reply for $1\n";
@@ -2924,7 +2924,7 @@ sub customize {
             logmsg "FTPD: run test case number: $testno\n";
         }
     }
-    close(CUSTOM);
+    close($custom);
 }
 
 #----------------------------------------------------------------------
@@ -3066,17 +3066,17 @@ startsf();
 # actual port
 if($portfile && !$port) {
     my $aport;
-    open(P, "<$portfile");
-    $aport = <P>;
-    close(P);
+    open(my $p, "<", "$portfile");
+    $aport = <$p>;
+    close($p);
     $port = 0 + $aport;
 }
 
 logmsg sprintf("%s server listens on port IPv${ipvnum}/${port}\n", uc($proto));
 
-open(PID, ">$pidfile");
-print PID $$."\n";
-close(PID);
+open(my $pid, ">", "$pidfile");
+print $pid $$."\n";
+close($pid);
 
 logmsg("logged pid $$ in $pidfile\n");
 

+ 23 - 23
tests/getpart.pm

@@ -220,12 +220,12 @@ sub loadtest {
     undef @xml;
     $xmlfile = "";
 
-    if(open(XML, "<$file")) {
-        binmode XML; # for crapage systems, use binary
-        while(<XML>) {
+    if(open(my $xmlh, "<", "$file")) {
+        binmode $xmlh; # for crapage systems, use binary
+        while(<$xmlh>) {
             push @xml, $_;
         }
-        close(XML);
+        close($xmlh);
     }
     else {
         # failure
@@ -246,12 +246,12 @@ sub fulltest {
 sub savetest {
     my ($file)=@_;
 
-    if(open(XML, ">$file")) {
-        binmode XML; # for crapage systems, use binary
+    if(open(my $xmlh, ">", "$file")) {
+        binmode $xmlh; # for crapage systems, use binary
         for(@xml) {
-            print XML $_;
+            print $xmlh $_;
         }
-        close(XML);
+        close($xmlh);
     }
     else {
         # failure
@@ -310,12 +310,12 @@ sub compareparts {
 sub writearray {
     my ($filename, $arrayref)=@_;
 
-    open(TEMP, ">$filename") || die "Failure writing file";
-    binmode(TEMP,":raw"); # cygwin fix by Kevin Roth
+    open(my $temp, ">", "$filename") || die "Failure writing file";
+    binmode($temp,":raw"); # cygwin fix by Kevin Roth
     for(@$arrayref) {
-        print TEMP $_;
+        print $temp $_;
     }
-    close(TEMP) || die "Failure writing file";
+    close($temp) || die "Failure writing file";
 }
 
 #
@@ -325,11 +325,11 @@ sub loadarray {
     my ($filename)=@_;
     my @array;
 
-    open(TEMP, "<$filename");
-    while(<TEMP>) {
+    open(my $temp, "<", "$filename");
+    while(<$temp>) {
         push @array, $_;
     }
-    close(TEMP);
+    close($temp);
     return @array;
 }
 
@@ -342,27 +342,27 @@ sub showdiff {
     my $file1="$logdir/check-generated";
     my $file2="$logdir/check-expected";
 
-    open(TEMP, ">$file1") || die "Failure writing diff file";
+    open(my $temp, ">", "$file1") || die "Failure writing diff file";
     for(@$firstref) {
         my $l = $_;
         $l =~ s/\r/[CR]/g;
         $l =~ s/\n/[LF]/g;
         $l =~ s/([^\x20-\x7f])/sprintf "%%%02x", ord $1/eg;
-        print TEMP $l;
-        print TEMP "\n";
+        print $temp $l;
+        print $temp "\n";
     }
-    close(TEMP) || die "Failure writing diff file";
+    close($temp) || die "Failure writing diff file";
 
-    open(TEMP, ">$file2") || die "Failure writing diff file";
+    open($temp, ">", "$file2") || die "Failure writing diff file";
     for(@$secondref) {
         my $l = $_;
         $l =~ s/\r/[CR]/g;
         $l =~ s/\n/[LF]/g;
         $l =~ s/([^\x20-\x7f])/sprintf "%%%02x", ord $1/eg;
-        print TEMP $l;
-        print TEMP "\n";
+        print $temp $l;
+        print $temp "\n";
     }
-    close(TEMP) || die "Failure writing diff file";
+    close($temp) || die "Failure writing diff file";
     my @out = `diff -u $file2 $file1 2>/dev/null`;
 
     if(!$out[0]) {

+ 20 - 18
tests/manpage-scan.pl

@@ -67,9 +67,9 @@ my %alias = (
 sub scanmanpage {
     my ($file, @words) = @_;
 
-    open(M, "<$file");
+    open(my $mh, "<", "$file");
     my @m;
-    while(<M>) {
+    while(<$mh>) {
         if($_ =~ /^\.IP (.*)/) {
             my $w = $1;
             # "unquote" minuses
@@ -77,7 +77,7 @@ sub scanmanpage {
             push @m, $w;
         }
     }
-    close(M);
+    close($mh);
 
     foreach my $m (@words) {
         my @g = grep(/$m/, @m);
@@ -88,22 +88,24 @@ sub scanmanpage {
     }
 }
 
+my $r;
+
 # check for define alises
-open(R, "<$curlh") ||
+open($r, "<", "$curlh") ||
     die "no curl.h";
-while(<R>) {
+while(<$r>) {
     if(/^\#define (CURL(OPT|INFO|MOPT)_\w+) (.*)/) {
         $alias{$1}=$3;
     }
 }
-close(R);
+close($r);
 
 my @curlopt;
 my @curlinfo;
 my @curlmopt;
-open(R, "<$syms") ||
+open($r, "<", "$syms") ||
     die "no input file";
-while(<R>) {
+while(<$r>) {
     chomp;
     my $l= $_;
     if($l =~ /(CURL(OPT|INFO|MOPT)_\w+) *([0-9.]*) *([0-9.-]*) *([0-9.]*)/) {
@@ -133,7 +135,7 @@ while(<R>) {
         }
     }
 }
-close(R);
+close($r);
 
 scanmanpage("$root/docs/libcurl/curl_easy_setopt.3", @curlopt);
 scanmanpage("$root/docs/libcurl/curl_easy_getinfo.3", @curlinfo);
@@ -174,12 +176,12 @@ my %opts = (
 
 #########################################################################
 # parse the curl code that parses the command line arguments!
-open(R, "<$root/src/tool_getparam.c") ||
+open($r, "<", "$root/src/tool_getparam.c") ||
     die "no input file";
 my $list;
 my @getparam; # store all parsed parameters
 
-while(<R>) {
+while(<$r>) {
     chomp;
     my $l= $_;
     if(/struct LongShort aliases/) {
@@ -206,15 +208,15 @@ while(<R>) {
         }
     }
 }
-close(R);
+close($r);
 
 #########################################################################
 # parse the curl.1 man page, extract all documented command line options
 # The man page may or may not be rebuilt, so check both possible locations
-open(R, "<$buildroot/docs/curl.1") || open(R, "<$root/docs/curl.1") ||
+open($r, "<", "$buildroot/docs/curl.1") || open($r, "<", "$root/docs/curl.1") ||
     die "no input file";
 my @manpage; # store all parsed parameters
-while(<R>) {
+while(<$r>) {
     chomp;
     my $l= $_;
     $l =~ s/\\-/-/g;
@@ -235,15 +237,15 @@ while(<R>) {
         }
     }
 }
-close(R);
+close($r);
 
 
 #########################################################################
 # parse the curl code that outputs the curl -h list
-open(R, "<$root/src/tool_listhelp.c") ||
+open($r, "<", "$root/src/tool_listhelp.c") ||
     die "no input file";
 my @toolhelp; # store all parsed parameters
-while(<R>) {
+while(<$r>) {
     chomp;
     my $l= $_;
     if(/^  \{\" *(.*)/) {
@@ -264,7 +266,7 @@ while(<R>) {
 
     }
 }
-close(R);
+close($r);
 
 #
 # Now we have three arrays with options to cross-reference.

+ 7 - 7
tests/manpage-syntax.pl

@@ -75,9 +75,9 @@ my %deprecated = (
     CURLINFO_SSL_DATA_OUT => 1,
     );
 sub allsymbols {
-    open(F, "<$symbolsinversions") ||
+    open(my $f, "<", "$symbolsinversions") ||
         die "$symbolsinversions: $|";
-    while(<F>) {
+    while(<$f>) {
         if($_ =~ /^([^ ]*) +(.*)/) {
             my ($name, $info) = ($1, $2);
             $symbol{$name}=$name;
@@ -87,7 +87,7 @@ sub allsymbols {
             }
         }
     }
-    close(F);
+    close($f);
 }
 
 sub scanmanpage {
@@ -102,7 +102,7 @@ sub scanmanpage {
     my @sh;
     my $SH="";
 
-    open(M, "<$file") || die "no such file: $file";
+    open(my $m, "<", "$file") || die "no such file: $file";
     if($file =~ /[\/\\](CURL|curl_)[^\/\\]*.3/) {
         # This is a man page for libcurl. It requires an example!
         $reqex = 1;
@@ -111,11 +111,11 @@ sub scanmanpage {
         }
     }
     my $line = 1;
-    while(<M>) {
+    while(<$m>) {
         chomp;
         if($_ =~ /^.so /) {
             # this man page is just a referral
-            close(M);
+            close($m);
             return;
         }
         if(($_ =~ /^\.SH SYNOPSIS/i) && ($reqex)) {
@@ -200,7 +200,7 @@ sub scanmanpage {
         }
         $line++;
     }
-    close(M);
+    close($m);
 
     if($reqex) {
         # only for libcurl options man-pages

+ 3 - 3
tests/markdown-uppercase.pl

@@ -38,11 +38,11 @@ sub checkfile {
     if($f !~ /\.md\z/) {
         return;
     }
-    open(F, "<$f");
+    open(my $fh, "<", "$f");
     my $l = 1;
     my $prevl;
     my $ignore = 0;
-    while(<F>) {
+    while(<$fh>) {
         my $line = $_;
         chomp $line;
         if($line =~ /^(\`\`\`|\~\~\~)/) {
@@ -86,7 +86,7 @@ sub checkfile {
         $prevl = $line;
         $l++;
     }
-    close(F);
+    close($fh);
 }
 
 

+ 4 - 4
tests/mem-include-scan.pl

@@ -43,8 +43,8 @@ sub scanfile {
 
     print STDERR "checking $file...\n";
 
-    open(F, "<$file");
-    while(<F>) {
+    open(my $f, "<", "$file");
+    while(<$f>) {
         if($_ =~ /\W(free|alloc|strdup)\(/) {
             $memfunc++;
         }
@@ -56,14 +56,14 @@ sub scanfile {
         }
         elsif($_ =~ /mem-include-scan/) {
             # free pass
-            close(F);
+            close($f);
             return 0;
         }
         if($memfunc && $memdebug && $curlmem) {
             last;
         }
     }
-    close(F);
+    close($f);
 
 
     if($memfunc) {

+ 5 - 5
tests/memanalyze.pl

@@ -81,22 +81,22 @@ if(! -f $file) {
     exit;
 }
 
-open(FILE, "<$file");
+open(my $fileh, "<", "$file");
 
 if($showlimit) {
-    while(<FILE>) {
+    while(<$fileh>) {
         if(/^LIMIT.*memlimit$/) {
             print $_;
             last;
         }
     }
-    close(FILE);
+    close($fileh);
     exit;
 }
 
 
 my $lnum=0;
-while(<FILE>) {
+while(<$fileh>) {
     chomp $_;
     $line = $_;
     $lnum++;
@@ -375,7 +375,7 @@ while(<FILE>) {
         print "Not recognized prefix line: $line\n";
     }
 }
-close(FILE);
+close($fileh);
 
 if($totalmem) {
     print "Leak detected: memory still allocated: $totalmem bytes\n";

+ 3 - 3
tests/nroff-scan.pl

@@ -56,10 +56,10 @@ sub manpresent {
 
 sub file {
     my ($f) = @_;
-    open(F, "<$f") ||
+    open(my $fh, "<", "$f") ||
         die "no file";
     my $line = 1;
-    while(<F>) {
+    while(<$fh>) {
         chomp;
         my $l = $_;
         while($l =~ s/\\f(.)([^ ]*)\\f(.)//) {
@@ -100,7 +100,7 @@ sub file {
         }
         $line++;
     }
-    close(F);
+    close($fh);
 }
 
 foreach my $f (@f) {

+ 8 - 8
tests/option-check.pl

@@ -31,15 +31,15 @@ sub showline {
 
 my $root = $ARGV[0];
 
-open(F, "perl $root/lib/optiontable.pl < $root/include/curl/curl.h|");
-binmode F;
-my @gen=<F>;
-close(F);
+open(my $fh, "-|", "perl $root/lib/optiontable.pl < $root/include/curl/curl.h");
+binmode $fh;
+my @gen=<$fh>;
+close($fh);
 
-open(F, "<$root/lib/easyoptions.c");
-binmode F;
-my @file=<F>;
-close(F);
+open($fh, "<", "$root/lib/easyoptions.c");
+binmode $fh;
+my @file=<$fh>;
+close($fh);
 
 if(join("", @gen) ne join("", @file)) {
     print "easyoptions.c need to be regenerated!\n";

+ 6 - 5
tests/options-scan.pl

@@ -50,8 +50,8 @@ sub cmdfiles {
 sub mentions {
     my ($f) = @_;
     my @options;
-    open(F, "<$f");
-    while(<F>) {
+    open(my $fh, "<", "$f");
+    while(<$fh>) {
         chomp;
         if(/(.*) +([0-9.]+)/) {
             my ($flag, $version)=($1, $2);
@@ -71,13 +71,14 @@ sub mentions {
             $oiv{$flag} = $version;
         }
     }
+    close($fh);
     return @options;
 }
 
 sub versioncheck {
     my ($f, $v)=@_;
-    open(F, "<$cmddir/$f.d");
-    while(<F>) {
+    open(my $fh, "<", "$cmddir/$f.d");
+    while(<$fh>) {
         chomp;
         if(/^Added: ([0-9.]+)/) {
             if($1 ne $v) {
@@ -87,7 +88,7 @@ sub versioncheck {
             last;
         }
     }
-    close(F);
+    close($fh);
 }
 
 # get all the files

+ 92 - 91
tests/runtests.pl

@@ -350,7 +350,7 @@ delete $ENV{'CURL_CA_BUNDLE'} if($ENV{'CURL_CA_BUNDLE'});
 
 # provide defaults from our config file for ENV vars not explicitly
 # set by the caller
-if (open(my $fd, "< config")) {
+if (open(my $fd, "<", "config")) {
     while(my $line = <$fd>) {
         next if ($line =~ /^#/);
         chomp $line;
@@ -460,9 +460,9 @@ sub startnew {
 
     # Ugly hack but ssh client and gnutls-serv don't support pid files
     if ($fake) {
-        if(open(OUT, ">$pidfile")) {
-            print OUT $child . "\n";
-            close(OUT) || die "Failure writing pidfile";
+        if(open(my $out, ">", "$pidfile")) {
+            print $out $child . "\n";
+            close($out) || die "Failure writing pidfile";
             logmsg "startnew: $pidfile faked with pid=$child\n" if($verbose);
         }
         else {
@@ -478,9 +478,9 @@ sub startnew {
 
     my $count = $timeout;
     while($count--) {
-        if(-f $pidfile && -s $pidfile && open(PID, "<$pidfile")) {
-            $pid2 = 0 + <PID>;
-            close(PID);
+        if(-f $pidfile && -s $pidfile && open(my $pidh, "<", "$pidfile")) {
+            $pid2 = 0 + <$pidh>;
+            close($pidh);
             if(($pid2 > 0) && pidexists($pid2)) {
                 # if $pid2 is valid, then make sure this pid is alive, as
                 # otherwise it is just likely to be the _previous_ pidfile or
@@ -534,15 +534,15 @@ my $disttests = "";
 sub get_disttests {
     # If a non-default $TESTDIR is being used there may not be any
     # Makefile.inc in which case there's nothing to do.
-    open(D, "<$TESTDIR/Makefile.inc") or return;
-    while(<D>) {
+    open(my $dh, "<", "$TESTDIR/Makefile.inc") or return;
+    while(<$dh>) {
         chomp $_;
         if(($_ =~ /^#/) ||($_ !~ /test/)) {
             next;
         }
         $disttests .= $_;
     }
-    close(D);
+    close($dh);
 }
 
 #######################################################################
@@ -886,21 +886,21 @@ sub verifyhttp {
 
     if($res && $verbose) {
         logmsg "RUN: curl command returned $res\n";
-        if(open(FILE, "<$verifylog")) {
-            while(my $string = <FILE>) {
+        if(open(my $file, "<", "$verifylog")) {
+            while(my $string = <$file>) {
                 logmsg "RUN: $string" if($string !~ /^([ \t]*)$/);
             }
-            close(FILE);
+            close($file);
         }
     }
 
     my $data;
-    if(open(FILE, "<$verifyout")) {
-        while(my $string = <FILE>) {
+    if(open(my $file, "<", "$verifyout")) {
+        while(my $string = <$file>) {
             $data = $string;
             last; # only want first line
         }
-        close(FILE);
+        close($file);
     }
 
     if($data && ($data =~ /WE ROOLZ: (\d+)/)) {
@@ -1029,21 +1029,21 @@ sub verifyrtsp {
 
     if($res && $verbose) {
         logmsg "RUN: curl command returned $res\n";
-        if(open(FILE, "<$verifylog")) {
-            while(my $string = <FILE>) {
+        if(open(my $file, "<", "$verifylog")) {
+            while(my $string = <$file>) {
                 logmsg "RUN: $string" if($string !~ /^[ \t]*$/);
             }
-            close(FILE);
+            close($file);
         }
     }
 
     my $data;
-    if(open(FILE, "<$verifyout")) {
-        while(my $string = <FILE>) {
+    if(open(my $file, "<", "$verifyout")) {
+        while(my $string = <$file>) {
             $data = $string;
             last; # only want first line
         }
-        close(FILE);
+        close($file);
     }
 
     if($data && ($data =~ /RTSP_SERVER WE ROOLZ: (\d+)/)) {
@@ -1071,9 +1071,9 @@ sub verifyssh {
     my $server = servername_id($proto, $ipvnum, $idnum);
     my $pidfile = server_pidfilename($proto, $ipvnum, $idnum);
     my $pid = 0;
-    if(open(FILE, "<$pidfile")) {
-        $pid=0+<FILE>;
-        close(FILE);
+    if(open(my $file, "<", "$pidfile")) {
+        $pid=0+<$file>;
+        close($file);
     }
     if($pid > 0) {
         # if we have a pid it is actually our ssh server,
@@ -1113,14 +1113,14 @@ sub verifysftp {
     my $cmd = "\"$sftp\" -b $sftpcmds -F $sftpconfig -S \"$ssh\" $ip > $sftplog 2>&1";
     my $res = runclient($cmd);
     # Search for pwd command response in log file
-    if(open(SFTPLOGFILE, "<$sftplog")) {
-        while(<SFTPLOGFILE>) {
+    if(open(my $sftplogfile, "<", "$sftplog")) {
+        while(<$sftplogfile>) {
             if(/^Remote working directory: /) {
                 $verified = 1;
                 last;
             }
         }
-        close(SFTPLOGFILE);
+        close($sftplogfile);
     }
     return $verified;
 }
@@ -1172,25 +1172,25 @@ sub verifyhttptls {
 
     if($res && $verbose) {
         logmsg "RUN: curl command returned $res\n";
-        if(open(FILE, "<$verifylog")) {
-            while(my $string = <FILE>) {
+        if(open(my $file, "<", "$verifylog")) {
+            while(my $string = <$file>) {
                 logmsg "RUN: $string" if($string !~ /^([ \t]*)$/);
             }
-            close(FILE);
+            close($file);
         }
     }
 
     my $data;
-    if(open(FILE, "<$verifyout")) {
-        while(my $string = <FILE>) {
+    if(open(my $file, "<", "$verifyout")) {
+        while(my $string = <$file>) {
             $data .= $string;
         }
-        close(FILE);
+        close($file);
     }
 
-    if($data && ($data =~ /(GNUTLS|GnuTLS)/) && open(FILE, "<$pidfile")) {
-        $pid=0+<FILE>;
-        close(FILE);
+    if($data && ($data =~ /(GNUTLS|GnuTLS)/) && open(my $file, "<", "$pidfile")) {
+        $pid=0+<$file>;
+        close($file);
         if($pid > 0) {
             # if we have a pid it is actually our httptls server,
             # since runhttptlsserver() unlinks previous pidfile
@@ -1223,9 +1223,9 @@ sub verifysocks {
     my $server = servername_id($proto, $ipvnum, $idnum);
     my $pidfile = server_pidfilename($proto, $ipvnum, $idnum);
     my $pid = 0;
-    if(open(FILE, "<$pidfile")) {
-        $pid=0+<FILE>;
-        close(FILE);
+    if(open(my $file, "<", "$pidfile")) {
+        $pid=0+<$file>;
+        close($file);
     }
     if($pid > 0) {
         # if we have a pid it is actually our socks server,
@@ -2292,9 +2292,10 @@ sub runsshserver {
     }
 
     my $hstpubmd5f = "curl_host_rsa_key.pub_md5";
-    if(!open(PUBMD5FILE, "<", $hstpubmd5f) ||
-       (read(PUBMD5FILE, $SSHSRVMD5, 32) != 32) ||
-       !close(PUBMD5FILE) ||
+    my $hostfile;
+    if(!open($hostfile, "<", $hstpubmd5f) ||
+       (read($hostfile, $SSHSRVMD5, 32) != 32) ||
+       !close($hostfile) ||
        ($SSHSRVMD5 !~ /^[a-f0-9]{32}$/i))
     {
         my $msg = "Fatal: $srvrname pubkey md5 missing : \"$hstpubmd5f\" : $!";
@@ -2304,9 +2305,9 @@ sub runsshserver {
     }
 
     my $hstpubsha256f = "curl_host_rsa_key.pub_sha256";
-    if(!open(PUBSHA256FILE, "<", $hstpubsha256f) ||
-       (read(PUBSHA256FILE, $SSHSRVSHA256, 48) == 0) ||
-       !close(PUBSHA256FILE))
+    if(!open($hostfile, "<", $hstpubsha256f) ||
+       (read($hostfile, $SSHSRVSHA256, 48) == 0) ||
+       !close($hostfile))
     {
         my $msg = "Fatal: $srvrname pubkey sha256 missing : \"$hstpubsha256f\" : $!";
         logmsg "$msg\n";
@@ -2895,13 +2896,13 @@ sub checksystemfeatures {
     $versretval = runclient($versioncmd);
     $versnoexec = $!;
 
-    open(VERSOUT, "<$curlverout");
-    @version = <VERSOUT>;
-    close(VERSOUT);
+    open(my $versout, "<", "$curlverout");
+    @version = <$versout>;
+    close($versout);
 
-    open(DISABLED, "server/disabled".exe_ext('TOOL')."|");
-    @disabled = <DISABLED>;
-    close(DISABLED);
+    open(my $disabledh, "-|", "server/disabled".exe_ext('TOOL'));
+    @disabled = <$disabledh>;
+    close($disabledh);
 
     if($disabled[0]) {
         s/[\r\n]//g for @disabled;
@@ -3140,14 +3141,14 @@ sub checksystemfeatures {
     }
 
     if(-r "../lib/curl_config.h") {
-        open(CONF, "<../lib/curl_config.h");
-        while(<CONF>) {
+        open(my $conf, "<", "../lib/curl_config.h");
+        while(<$conf>) {
             if($_ =~ /^\#define HAVE_GETRLIMIT/) {
                 # set if system has getrlimit()
                 $feature{"getrlimit"} = 1;
             }
         }
-        close(CONF);
+        close($conf);
     }
 
     # disable this feature unless debug mode is also enabled
@@ -3180,8 +3181,8 @@ sub checksystemfeatures {
         $http_unix = 1 if($sws[0] =~ /unix/);
     }
 
-    open(M, "$CURL -M 2>&1|");
-    while(my $s = <M>) {
+    open(my $manh, "-|", "$CURL -M 2>&1");
+    while(my $s = <$manh>) {
         if($s =~ /built-in manual was disabled at build-time/) {
             $feature{"manual"} = 0;
             last;
@@ -3189,7 +3190,7 @@ sub checksystemfeatures {
         $feature{"manual"} = 1;
         last;
     }
-    close(M);
+    close($manh);
 
     $feature{"unittest"} = $feature{"debug"};
     $feature{"nghttpx"} = !!$ENV{'NGHTTPX'};
@@ -3813,11 +3814,11 @@ sub singletest_preprocess {
     @entiretest = prepro($testnum, @entiretest);
 
     # save the new version
-    open(D, ">$otest") || die "Failure writing test file";
+    open(my $fulltesth, ">", "$otest") || die "Failure writing test file";
     foreach my $bytes (@entiretest) {
-        print D pack('a*', $bytes) or die "Failed to print '$bytes': $!";
+        print $fulltesth pack('a*', $bytes) or die "Failed to print '$bytes': $!";
     }
-    close(D) || die "Failure writing test file";
+    close($fulltesth) || die "Failure writing test file";
 
     # in case the process changed the file, reload it
     loadtest("log/test${testnum}");
@@ -3977,14 +3978,14 @@ sub singletest_prepare {
                     mkdir $d; # 0777
                 }
             }
-            open(OUTFILE, ">$filename");
-            binmode OUTFILE; # for crapage systems, use binary
+            open(my $outfile, ">", "$filename");
+            binmode $outfile; # for crapage systems, use binary
             if($fileattr{'nonewline'}) {
                 # cut off the final newline
                 chomp($fileContent);
             }
-            print OUTFILE $fileContent;
-            close(OUTFILE);
+            print $outfile $fileContent;
+            close($outfile);
         }
     }
     return ($why, 0);
@@ -4150,20 +4151,20 @@ sub singletest_run {
         logmsg "$CMDLINE\n";
     }
 
-    open(CMDLOG, ">", "$LOGDIR/$CURLLOG") || die "Failure writing log file";
-    print CMDLOG "$CMDLINE\n";
-    close(CMDLOG) || die "Failure writing log file";
+    open(my $cmdlog, ">", "$LOGDIR/$CURLLOG") || die "Failure writing log file";
+    print $cmdlog "$CMDLINE\n";
+    close($cmdlog) || die "Failure writing log file";
 
     my $dumped_core;
     my $cmdres;
 
     if($gdbthis) {
         my $gdbinit = "$TESTDIR/gdbinit$testnum";
-        open(GDBCMD, ">$LOGDIR/gdbcmd") || die "Failure writing gdb file";
-        print GDBCMD "set args $cmdargs\n";
-        print GDBCMD "show args\n";
-        print GDBCMD "source $gdbinit\n" if -e $gdbinit;
-        close(GDBCMD) || die "Failure writing gdb file";
+        open(my $gdbcmd, ">", "$LOGDIR/gdbcmd") || die "Failure writing gdb file";
+        print $gdbcmd "set args $cmdargs\n";
+        print $gdbcmd "show args\n";
+        print $gdbcmd "source $gdbinit\n" if -e $gdbinit;
+        close($gdbcmd) || die "Failure writing gdb file";
     }
 
     # Flush output.
@@ -4211,9 +4212,9 @@ sub singletest_clean {
         logmsg "core dumped\n";
         if(0 && $gdb) {
             logmsg "running gdb for post-mortem analysis:\n";
-            open(GDBCMD, ">$LOGDIR/gdbcmd2") || die "Failure writing gdb file";
-            print GDBCMD "bt\n";
-            close(GDBCMD) || die "Failure writing gdb file";
+            open(my $gdbcmd, ">", "$LOGDIR/gdbcmd2") || die "Failure writing gdb file";
+            print $gdbcmd "bt\n";
+            close($gdbcmd) || die "Failure writing gdb file";
             runclient("$gdb --directory libtest -x $LOGDIR/gdbcmd2 -batch $DBGCURL core ");
      #       unlink("$LOGDIR/gdbcmd2");
         }
@@ -6009,10 +6010,10 @@ if(!$randseed) {
         localtime(time);
     # seed of the month. December 2019 becomes 201912
     $randseed = ($year+1900)*100 + $mon+1;
-    open(C, "$CURL --version 2>/dev/null|") ||
+    open(my $curlvh, "-|", "$CURL --version 2>/dev/null") ||
         die "could not get curl version!";
-    my @c = <C>;
-    close(C);
+    my @c = <$curlvh>;
+    close($curlvh) || die "could not get curl version!";
     # use the first line of output and get the md5 out of it
     my $str = md5($c[0]);
     $randseed += unpack('S', $str);  # unsigned 16 bit value
@@ -6040,13 +6041,13 @@ if($valgrind) {
         if (($? >> 8)==0) {
             $valgrind_tool="--tool=memcheck";
         }
-        open(C, "<$CURL");
-        my $l = <C>;
+        open(my $curlh, "<", "$CURL");
+        my $l = <$curlh>;
         if($l =~ /^\#\!/) {
             # A shell script. This is typically when built with libtool,
             $valgrind="../libtool --mode=execute $valgrind";
         }
-        close(C);
+        close($curlh);
 
         # valgrind 3 renamed the --logfile option to --log-file!!!
         my $ver=join(' ', runclientoutput("valgrind --version"));
@@ -6064,10 +6065,10 @@ if($valgrind) {
 
 if ($gdbthis) {
     # open the executable curl and read the first 4 bytes of it
-    open(CHECK, "<$CURL");
+    open(my $check, "<", "$CURL");
     my $c;
-    sysread CHECK, $c, 4;
-    close(CHECK);
+    sysread $check, $c, 4;
+    close($check);
     if($c eq "#! /") {
         # A shell script. This is typically when built with libtool,
         $libtool = 1;
@@ -6112,15 +6113,15 @@ sub disabledtests {
     my ($file) = @_;
     my @input;
 
-    if(open(D, "<$file")) {
-        while(<D>) {
+    if(open(my $disabledh, "<", "$file")) {
+        while(<$disabledh>) {
             if(/^ *\#/) {
                 # allow comments
                 next;
             }
             push @input, $_;
         }
-        close(D);
+        close($disabledh);
 
         # preprocess the input to make conditionally disabled tests depending
         # on variables
@@ -6214,11 +6215,11 @@ if($scrambleorder) {
 # and excessively long files are elided
 sub displaylogcontent {
     my ($file)=@_;
-    if(open(SINGLE, "<$file")) {
+    if(open(my $single, "<", "$file")) {
         my $linecount = 0;
         my $truncate;
         my @tail;
-        while(my $string = <SINGLE>) {
+        while(my $string = <$single>) {
             $string =~ s/\r\n/\n/g;
             $string =~ s/[\r\f\032]/\n/g;
             $string .= "\n" unless ($string =~ /\n$/);
@@ -6234,7 +6235,7 @@ sub displaylogcontent {
                 $truncate = $linecount > 1000;
             }
         }
-        close(SINGLE);
+        close($single);
         if(@tail) {
             my $tailshow = 200;
             my $tailskip = 0;

+ 17 - 17
tests/secureserver.pl

@@ -277,26 +277,26 @@ if($stunnel_version >= 400) {
     $SIG{INT} = \&exit_signal_handler;
     $SIG{TERM} = \&exit_signal_handler;
     # stunnel configuration file
-    if(open(STUNCONF, ">$conffile")) {
-        print STUNCONF "CApath = $capath\n";
-        print STUNCONF "cert = $certfile\n";
-        print STUNCONF "debug = $loglevel\n";
-        print STUNCONF "socket = $socketopt\n";
+    if(open(my $stunconf, ">", "$conffile")) {
+        print $stunconf "CApath = $capath\n";
+        print $stunconf "cert = $certfile\n";
+        print $stunconf "debug = $loglevel\n";
+        print $stunconf "socket = $socketopt\n";
         if($fips_support) {
             # disable fips in case OpenSSL doesn't support it
-            print STUNCONF "fips = no\n";
+            print $stunconf "fips = no\n";
         }
         if(!$tstunnel_windows) {
             # do not use Linux-specific options on Windows
-            print STUNCONF "output = $logfile\n";
-            print STUNCONF "pid = $pidfile\n";
-            print STUNCONF "foreground = yes\n";
+            print $stunconf "output = $logfile\n";
+            print $stunconf "pid = $pidfile\n";
+            print $stunconf "foreground = yes\n";
         }
-        print STUNCONF "\n";
-        print STUNCONF "[curltest]\n";
-        print STUNCONF "accept = $accept_port\n";
-        print STUNCONF "connect = $target_port\n";
-        if(!close(STUNCONF)) {
+        print $stunconf "\n";
+        print $stunconf "[curltest]\n";
+        print $stunconf "accept = $accept_port\n";
+        print $stunconf "connect = $target_port\n";
+        if(!close($stunconf)) {
             print "$ssltext Error closing file $conffile\n";
             exit 1;
         }
@@ -338,9 +338,9 @@ print STDERR "RUN: $cmd\n" if($verbose);
 #
 if($tstunnel_windows) {
     # Fake pidfile for tstunnel on Windows.
-    if(open(OUT, ">$pidfile")) {
-        print OUT $$ . "\n";
-        close(OUT);
+    if(open(my $out, ">", "$pidfile")) {
+        print $out $$ . "\n";
+        close($out);
     }
 
     # Flush output.

+ 6 - 6
tests/sshhelp.pm

@@ -210,12 +210,12 @@ sub dump_array {
     if(!$filename) {
         $error = 'Error: Missing argument 1 for dump_array()';
     }
-    elsif(open(TEXTFH, ">$filename")) {
+    elsif(open(my $textfh, ">", "$filename")) {
         foreach my $line (@arr) {
             $line .= "\n" if($line !~ /\n$/);
-            print TEXTFH $line;
+            print $textfh $line;
         }
-        if(!close(TEXTFH)) {
+        if(!close($textfh)) {
             $error = "Error: cannot close file $filename";
         }
     }
@@ -243,11 +243,11 @@ sub logmsg {
 sub display_file {
     my $filename = $_[0];
     print "=== Start of file $filename\n";
-    if(open(DISPLAYFH, "<$filename")) {
-        while(my $line = <DISPLAYFH>) {
+    if(open(my $displayfh, "<", "$filename")) {
+        while(my $line = <$displayfh>) {
             print "$line";
         }
-        close DISPLAYFH;
+        close $displayfh;
     }
     print "=== End of file $filename\n";
 }

+ 18 - 18
tests/sshserver.pl

@@ -387,23 +387,23 @@ if((! -e $hstprvkeyf) || (! -s $hstprvkeyf) ||
     system "chmod 600 $hstprvkeyf";
     system "chmod 600 $cliprvkeyf";
     # Save md5 and sha256 hashes of public host key
-    open(RSAKEYFILE, "<$hstpubkeyf");
-    my @rsahostkey = do { local $/ = ' '; <RSAKEYFILE> };
-    close(RSAKEYFILE);
+    open(my $rsakeyfile, "<", "$hstpubkeyf");
+    my @rsahostkey = do { local $/ = ' '; <$rsakeyfile> };
+    close($rsakeyfile);
     if(!$rsahostkey[1]) {
         logmsg 'Failed parsing base64 encoded RSA host key';
         exit 1;
     }
-    open(PUBMD5FILE, ">$hstpubmd5f");
-    print PUBMD5FILE md5_hex(decode_base64($rsahostkey[1]));
-    close(PUBMD5FILE);
+    open(my $pubmd5file, ">", "$hstpubmd5f");
+    print $pubmd5file md5_hex(decode_base64($rsahostkey[1]));
+    close($pubmd5file);
     if((! -e $hstpubmd5f) || (! -s $hstpubmd5f)) {
         logmsg 'Failed writing md5 hash of RSA host key';
         exit 1;
     }
-    open(PUBSHA256FILE, ">$hstpubsha256f");
-    print PUBSHA256FILE sha256_base64(decode_base64($rsahostkey[1]));
-    close(PUBSHA256FILE);
+    open(my $pubsha256file, ">", "$hstpubsha256f");
+    print $pubsha256file sha256_base64(decode_base64($rsahostkey[1]));
+    close($pubsha256file);
     if((! -e $hstpubsha256f) || (! -s $hstpubsha256f)) {
         logmsg 'Failed writing sha256 hash of RSA host key';
         exit 1;
@@ -780,12 +780,12 @@ if(system "\"$sshd\" -t -f $sshdconfig > $sshdlog 2>&1") {
 if((! -e $knownhosts) || (! -s $knownhosts)) {
     logmsg 'generating ssh client known hosts file...' if($verbose);
     unlink($knownhosts);
-    if(open(RSAKEYFILE, "<$hstpubkeyf")) {
-        my @rsahostkey = do { local $/ = ' '; <RSAKEYFILE> };
-        if(close(RSAKEYFILE)) {
-            if(open(KNOWNHOSTS, ">$knownhosts")) {
-                print KNOWNHOSTS "$listenaddr ssh-rsa $rsahostkey[1]\n";
-                if(!close(KNOWNHOSTS)) {
+    if(open(my $rsakeyfile, "<", "$hstpubkeyf")) {
+        my @rsahostkey = do { local $/ = ' '; <$rsakeyfile> };
+        if(close($rsakeyfile)) {
+            if(open(my $knownhostsh, ">", "$knownhosts")) {
+                print $knownhostsh "$listenaddr ssh-rsa $rsahostkey[1]\n";
+                if(!close($knownhostsh)) {
                     $error = "Error: cannot close file $knownhosts";
                 }
             }
@@ -1121,9 +1121,9 @@ logmsg "RUN: $cmd" if($verbose);
 #
 if ($sshdid =~ /OpenSSH-Windows/) {
     # Fake pidfile for ssh server on Windows.
-    if(open(OUT, ">$pidfile")) {
-        print OUT $$ . "\n";
-        close(OUT);
+    if(open(my $out, ">", "$pidfile")) {
+        print $out $$ . "\n";
+        close($out);
     }
 
     # Flush output.

+ 12 - 12
tests/symbol-scan.pl

@@ -66,8 +66,8 @@ my %rem;
 # included by it, which *should* be all headers
 sub scanenum {
     my ($file) = @_;
-    open H_IN, "-|", "$Cpreprocessor $i$file" || die "Cannot preprocess $file";
-    while ( <H_IN> ) {
+    open my $h_in, "-|", "$Cpreprocessor $i$file" || die "Cannot preprocess $file";
+    while ( <$h_in> ) {
         if ( /enum\s+(\S+\s+)?{/ .. /}/ ) {
             s/^\s+//;
             next unless /^CURL/;
@@ -76,18 +76,18 @@ sub scanenum {
             push @syms, $_;
         }
     }
-    close H_IN || die "Error preprocessing $file";
+    close $h_in || die "Error preprocessing $file";
 }
 
 sub scanheader {
     my ($f)=@_;
-    open H, "<$f";
-    while(<H>) {
+    open my $h, "<", "$f";
+    while(<$h>) {
         if (/^#define ((LIB|)CURL[A-Za-z0-9_]*)/) {
             push @syms, $1;
         }
     }
-    close H;
+    close $h;
 }
 
 sub scanallheaders {
@@ -105,9 +105,9 @@ sub scanallheaders {
 sub checkmanpage {
     my ($m) = @_;
 
-    open(M, "<$m");
+    open(my $mh, "<", "$m");
     my $line = 1;
-    while(<M>) {
+    while(<$mh>) {
         # strip off formatting
         $_ =~ s/\\f[BPRI]//;
         # detect global-looking 'CURL[BLABLA]_*' symbols
@@ -120,7 +120,7 @@ sub checkmanpage {
         }
         $line++;
     }
-    close(M);
+    close($mh);
 }
 
 sub scanman3dir {
@@ -139,8 +139,8 @@ scanallheaders();
 scanman3dir("$root/docs/libcurl");
 scanman3dir("$root/docs/libcurl/opts");
 
-open S, "<$root/docs/libcurl/symbols-in-versions";
-while(<S>) {
+open my $s, "<", "$root/docs/libcurl/symbols-in-versions";
+while(<$s>) {
     if(/(^[^ \n]+) +(.*)/) {
         my ($sym, $rest)=($1, $2);
         if($doc{$sym}) {
@@ -157,7 +157,7 @@ while(<S>) {
         }
     }
 }
-close S;
+close $s;
 
 my $ignored=0;
 for my $e (sort @syms) {

+ 76 - 76
tests/testcurl.pl

@@ -195,14 +195,14 @@ sub rmtree($) {
 
 sub grepfile($$) {
     my ($target, $fn) = @_;
-    open(F, $fn) or die;
-    while (<F>) {
+    open(my $fh, "<", $fn) or die;
+    while (<$fh>) {
       if (/$target/) {
-        close(F);
+        close($fh);
         return 1;
       }
     }
-    close(F);
+    close($fh);
     return 0;
 }
 
@@ -243,14 +243,14 @@ sub get_host_triplet {
   my $triplet;
   my $configfile = "$pwd/$build/lib/curl_config.h";
 
-  if(-f $configfile && -s $configfile && open(LIBCONFIGH, "<$configfile")) {
-    while(<LIBCONFIGH>) {
+  if(-f $configfile && -s $configfile && open(my $libconfigh, "<", "$configfile")) {
+    while(<$libconfigh>) {
       if($_ =~ /^\#define\s+OS\s+"*([^"][^"]*)"*\s*/) {
         $triplet = $1;
         last;
       }
     }
-    close(LIBCONFIGH);
+    close($libconfigh);
   }
   return $triplet;
 }
@@ -261,13 +261,13 @@ if($name && $email && $desc) {
   $infixed=4;
   $fixed=4;
 }
-elsif (open(F, "$setupfile")) {
-  while (<F>) {
+elsif (open(my $f, "<", "$setupfile")) {
+  while (<$f>) {
     if (/(\w+)=(.*)/) {
       eval "\$$1=$2;";
     }
   }
-  close(F);
+  close($f);
   $infixed=$fixed;
 }
 else {
@@ -307,14 +307,14 @@ if (!$confopts) {
 
 if ($fixed < 4) {
     $fixed=4;
-    open(F, ">$setupfile") or die;
-    print F "name='$name'\n";
-    print F "email='$email'\n";
-    print F "desc='$desc'\n";
-    print F "confopts='$confopts'\n";
-    print F "notes='$notes'\n";
-    print F "fixed='$fixed'\n";
-    close(F);
+    open(my $f, ">", "$setupfile") or die;
+    print $f "name='$name'\n";
+    print $f "email='$email'\n";
+    print $f "desc='$desc'\n";
+    print $f "confopts='$confopts'\n";
+    print $f "notes='$notes'\n";
+    print $f "fixed='$fixed'\n";
+    close($f);
 }
 
 # Enable picky compiler warnings unless explicitly disabled
@@ -469,15 +469,15 @@ if ($git) {
 
     # generate the build files
     logit "invoke autoreconf";
-    open(F, "autoreconf -fi 2>&1 |") or die;
-    open(LOG, ">$buildlog") or die;
-    while (<F>) {
+    open(my $f, "-|", "autoreconf -fi 2>&1") or die;
+    open(my $log, ">", "$buildlog") or die;
+    while (<$f>) {
       my $ll = $_;
       print $ll;
-      print LOG $ll;
+      print $log $ll;
     }
-    close(F);
-    close(LOG);
+    close($f);
+    close($log);
 
     logit "buildconf was successful";
   }
@@ -488,8 +488,8 @@ if ($git) {
 
 # Set timestamp to the one in curlver.h if this isn't a git test build.
 if ((-f "include/curl/curlver.h") &&
-    (open(F, "<include/curl/curlver.h"))) {
-  while (<F>) {
+    (open(my $f, "<", "include/curl/curlver.h"))) {
+  while (<$f>) {
     chomp;
     if ($_ =~ /^\#define\s+LIBCURL_TIMESTAMP\s+\"(.+)\".*$/) {
       my $stampstring = $1;
@@ -500,7 +500,7 @@ if ((-f "include/curl/curlver.h") &&
       last;
     }
   }
-  close(F);
+  close($f);
 }
 
 # Show timestamp we are using for this test build.
@@ -572,21 +572,21 @@ if ($configurebuild) {
 
 if(-f "./libcurl.pc") {
   logit_spaced "display libcurl.pc";
-  if(open(F, "<./libcurl.pc")) {
-    while(<F>) {
+  if(open(my $f, "<", "libcurl.pc")) {
+    while(<$f>) {
       my $ll = $_;
       print $ll if(($ll !~ /^ *#/) && ($ll !~ /^ *$/));
     }
-    close(F);
+    close($f);
   }
 }
 
 logit_spaced "display lib/$confheader";
-open(F, "lib/$confheader") or die "lib/$confheader: $!";
-while (<F>) {
+open(my $f, "<", "lib/$confheader") or die "lib/$confheader: $!";
+while (<$f>) {
   print if /^ *#/;
 }
-close(F);
+close($f);
 
 if (($have_embedded_ares) &&
     (grepfile("^#define USE_ARES", "lib/$confheader"))) {
@@ -595,23 +595,23 @@ if (($have_embedded_ares) &&
 
   if(-f "./ares/libcares.pc") {
     logit_spaced  "display ares/libcares.pc";
-    if(open(F, "<./ares/libcares.pc")) {
-      while(<F>) {
+    if(open($f, "<", "ares/libcares.pc")) {
+      while(<$f>) {
         my $ll = $_;
         print $ll if(($ll !~ /^ *#/) && ($ll !~ /^ *$/));
       }
-      close(F);
+      close($f);
     }
   }
 
   if(-f "./ares/ares_build.h") {
     logit_spaced "display ares/ares_build.h";
-    if(open(F, "<./ares/ares_build.h")) {
-      while(<F>) {
+    if(open($f, "<", "ares/ares_build.h")) {
+      while(<$f>) {
         my $ll = $_;
         print $ll if(($ll =~ /^ *# *define *CARES_/) && ($ll !~ /__CARES_BUILD_H/));
       }
-      close(F);
+      close($f);
     }
   }
   else {
@@ -620,11 +620,11 @@ if (($have_embedded_ares) &&
 
   $confheader =~ s/curl/ares/;
   logit_spaced "display ares/$confheader";
-  if(open(F, "ares/$confheader")) {
-      while (<F>) {
+  if(open($f, "<", "ares/$confheader")) {
+      while (<$f>) {
           print if /^ *#/;
       }
-      close(F);
+      close($f);
   }
 
   print "\n";
@@ -633,17 +633,17 @@ if (($have_embedded_ares) &&
 
   if ($targetos && !$configurebuild) {
       logit "$make -f Makefile.$targetos";
-      open(F, "$make -f Makefile.$targetos 2>&1 |") or die;
+      open($f, "-|", "$make -f Makefile.$targetos 2>&1") or die;
   }
   else {
       logit "$make";
-      open(F, "$make 2>&1 |") or die;
+      open($f, "-|", "$make 2>&1") or die;
   }
-  while (<F>) {
+  while (<$f>) {
     s/$pwd//g;
     print;
   }
-  close(F);
+  close($f);
 
   if (-f "libcares$libext") {
     logit "ares is now built successfully (libcares$libext)";
@@ -657,12 +657,12 @@ if (($have_embedded_ares) &&
 
 my $mkcmd = "$make -i" . ($targetos && !$configurebuild ? " $targetos" : "");
 logit "$mkcmd";
-open(F, "$mkcmd 2>&1 |") or die;
-while (<F>) {
+open(my $f, "-|", "$mkcmd 2>&1") or die;
+while (<$f>) {
   s/$pwd//g;
   print;
 }
-close(F);
+close($f);
 
 if (-f "lib/libcurl$libext") {
   logit "libcurl was created fine (libcurl$libext)";
@@ -681,13 +681,13 @@ else {
 if (!$crosscompile || (($extvercmd ne '') && (-x $extvercmd))) {
   logit "display curl${binext} --version output";
   my $cmd = ($extvercmd ne '' ? $extvercmd.' ' : '')."./src/curl${binext} --version|";
-  open(F, $cmd);
-  while(<F>) {
+  open($f, "<", $cmd);
+  while(<$f>) {
     # strip CR from output on non-win32 platforms (wine on Linux)
     s/\r// if ($^O ne 'MSWin32');
     print;
   }
-  close(F);
+  close($f);
 }
 
 if ($configurebuild && !$crosscompile) {
@@ -699,15 +699,15 @@ if ($configurebuild && !$crosscompile) {
      ($host_triplet =~ /([^-]+)-([^-]+)-solaris2(.*)/)) {
     chdir "$pwd/$build/docs/examples";
     logit_spaced "build examples";
-    open(F, "$make -i 2>&1 |") or die;
-    open(LOG, ">$buildlog") or die;
-    while (<F>) {
+    open($f, "-|", "$make -i 2>&1") or die;
+    open(my $log, ">", "$buildlog") or die;
+    while (<$f>) {
       s/$pwd//g;
       print;
-      print LOG;
+      print $log $_;
     }
-    close(F);
-    close(LOG);
+    close($f);
+    close($log);
     chdir "$pwd/$build";
   }
   # build and run full test suite
@@ -716,15 +716,15 @@ if ($configurebuild && !$crosscompile) {
       $o = "TEST_F=\"$runtestopts\" ";
   }
   logit "$make -k ${o}test-full";
-  open(F, "$make -k ${o}test-full 2>&1 |") or die;
-  open(LOG, ">$buildlog") or die;
-  while (<F>) {
+  open($f, "-|", "$make -k ${o}test-full 2>&1") or die;
+  open(my $log, ">", "$buildlog") or die;
+  while (<$f>) {
     s/$pwd//g;
     print;
-    print LOG;
+    print $log $_;
   }
-  close(F);
-  close(LOG);
+  close($f);
+  close($log);
 
   if (grepfile("^TEST", $buildlog)) {
     logit "tests were run";
@@ -746,30 +746,30 @@ else {
        ($host_triplet =~ /([^-]+)-([^-]+)-android(.*)/)) {
       chdir "$pwd/$build/docs/examples";
       logit_spaced "build examples";
-      open(F, "$make -i 2>&1 |") or die;
-      open(LOG, ">$buildlog") or die;
-      while (<F>) {
+      open($f, "-|", "$make -i 2>&1") or die;
+      open(my $log, ">", "$buildlog") or die;
+      while (<$f>) {
         s/$pwd//g;
         print;
-        print LOG;
+        print $log $_;
       }
-      close(F);
-      close(LOG);
+      close($f);
+      close($log);
       chdir "$pwd/$build";
     }
     # build test harness programs for selected cross-compiles
     if($host_triplet =~ /([^-]+)-([^-]+)-mingw(.*)/) {
       chdir "$pwd/$build/tests";
       logit_spaced "build test harness";
-      open(F, "$make -i 2>&1 |") or die;
-      open(LOG, ">$buildlog") or die;
-      while (<F>) {
+      open(my $f, "-|", "$make -i 2>&1") or die;
+      open(my $log, ">", "$buildlog") or die;
+      while (<$f>) {
         s/$pwd//g;
         print;
-        print LOG;
+        print $log $_;
       }
-      close(F);
-      close(LOG);
+      close($f);
+      close($log);
       chdir "$pwd/$build";
     }
     logit_spaced "cross-compiling, can't run tests";

+ 3 - 3
tests/valgrind.pm

@@ -30,9 +30,9 @@ use File::Basename;
 sub valgrindparse {
     my ($file) = @_;
     my @o;
-    open(VAL, "<$file");
-    @o = <VAL>;
-    close(VAL);
+    open(my $val, "<", "$file");
+    @o = <$val>;
+    close($val);
     return @o;
 }
 

+ 9 - 9
tests/version-scan.pl

@@ -39,8 +39,8 @@ my %manname;
 my %sourcename;
 my $error=0;
 
-open(M, "<$manpage");
-while(<M>) {
+open(my $m, "<", "$manpage");
+while(<$m>) {
     if($_ =~ / mask bit: (CURL_VERSION_[A-Z0-9_]+)/i) {
         $manversion{$1}++;
     }
@@ -48,23 +48,23 @@ while(<M>) {
         $manname{$1}++;
     }
 }
-close(M);
+close($m);
 
-open(H, "<$header");
-while(<H>) {
+open(my $h, "<", "$header");
+while(<$h>) {
     if($_ =~ /^\#define (CURL_VERSION_[A-Z0-9_]+)/i) {
         $headerversion{$1}++;
     }
 }
-close(H);
+close($h);
 
-open(S, "<$source");
-while(<S>) {
+open(my $s, "<", "$source");
+while(<$s>) {
     if($_ =~ /FEATURE\("([^"]*)"/) {
       $sourcename{$1}++;
     }
 }
-close(S);
+close($s);
 
 for my $h (keys %headerversion) {
     if(!$manversion{$h}) {