Remove use of global barewords in most file handling code.

This is not considered good practise in modern Perl code.

A few cases of this still remain in code which is due to be
rewritten anyway.
This commit is contained in:
Peter Powell 2017-07-11 17:37:20 +01:00
parent f0ca3397ea
commit 3cf2dd8247
2 changed files with 12 additions and 12 deletions

View File

@ -208,9 +208,9 @@ sub test_file($$;$) {
sub test_header($$;$) {
my ($compiler, $header, $args) = @_;
$args //= '';
open(COMPILER, "| $compiler -E - $args ${\CONFIGURE_ERROR_PIPE}") or return 0;
print COMPILER "#include <$header>";
close(COMPILER);
open(my $fh, "| $compiler -E - $args ${\CONFIGURE_ERROR_PIPE}") or return 0;
print $fh "#include <$header>";
close $fh;
return !$?;
}
@ -257,11 +257,11 @@ sub parse_templates($$$) {
# Iterate through files in make/template.
foreach (<make/template/*>) {
print_format "Parsing <|GREEN $_|> ...\n";
open(TEMPLATE, $_) or print_error "unable to read $_: $!";
open(my $fh, $_) or print_error "unable to read $_: $!";
my (@lines, $mode, @platforms, %targets);
# First pass: parse template variables and directives.
while (my $line = <TEMPLATE>) {
while (my $line = <$fh>) {
chomp $line;
# Does this line match a variable?
@ -301,7 +301,7 @@ sub parse_templates($$$) {
}
push @lines, $line;
}
close(TEMPLATE);
close $fh;
# Only proceed if this file should be templated on this platform.
if ($#platforms < 0 || grep { $_ eq $^O } @platforms) {
@ -397,11 +397,11 @@ sub parse_templates($$$) {
# Write the template file.
print_format "Writing <|GREEN $target|> ...\n";
open(TARGET, '>', $target) or print_error "unable to write $target: $!";
open(my $fh, '>', $target) or print_error "unable to write $target: $!";
foreach (@final_lines) {
say TARGET $_;
say $fh $_;
}
close(TARGET);
close $fh;
# Set file permissions.
if (defined $mode) {

View File

@ -41,16 +41,16 @@ our @EXPORT = qw(get_directive
sub get_directive($$;$)
{
my ($file, $property, $default) = @_;
open(MODULE, $file) or return $default;
open(my $fh, $file) or return $default;
my $value = '';
while (<MODULE>) {
while (<$fh>) {
if ($_ =~ /^\/\* \$(\S+): (.+) \*\/$/ || $_ =~ /^\/\/\/ \$(\S+): (.+)/) {
next unless $1 eq $property;
$value .= ' ' . execute_functions($file, $1, $2);
}
}
close(MODULE);
close $fh;
# Strip all extraneous whitespace.
$value =~ s/^\s+|\s+$//g;