From 7dbbb5422a23ec3a86557faf71a53d120e083c8d Mon Sep 17 00:00:00 2001 From: Dan Church Date: Thu, 20 Jul 2023 12:37:07 -0500 Subject: [PATCH] Unpack @_ first (PBP) --- lib/Directory/Simplify/File.pm | 3 +-- lib/Directory/Simplify/FileHash.pm | 4 ++-- .../Simplify/Instruction/CopyTimestamp.pm | 4 ++-- .../Simplify/Instruction/Generator.pm | 4 ++-- .../Simplify/Instruction/Hardlink.pm | 4 ++-- lib/Directory/Simplify/Utils.pm | 6 +++-- t/TestFunctions.pm | 22 +++++++++++-------- t/freed-bytes-commas.t | 3 ++- 8 files changed, 28 insertions(+), 22 deletions(-) diff --git a/lib/Directory/Simplify/File.pm b/lib/Directory/Simplify/File.pm index d794097..ea8d24a 100644 --- a/lib/Directory/Simplify/File.pm +++ b/lib/Directory/Simplify/File.pm @@ -6,8 +6,7 @@ require Cwd; use File::Basename qw/ dirname /; sub new { - my $class = shift; - my $rel_name = shift; + my ($class, $rel_name) = @_; my $self = bless { rel_name => $rel_name, name => Cwd::abs_path($rel_name), diff --git a/lib/Directory/Simplify/FileHash.pm b/lib/Directory/Simplify/FileHash.pm index 921573c..51bde63 100644 --- a/lib/Directory/Simplify/FileHash.pm +++ b/lib/Directory/Simplify/FileHash.pm @@ -13,11 +13,11 @@ require Directory::Simplify::File; # :squash-remove-end: sub new { - my $class = shift; + my ($class, %args) = @_; return bless { _entries => {}, _files_in_hash => {}, - @_, + %args, }, $class; } diff --git a/lib/Directory/Simplify/Instruction/CopyTimestamp.pm b/lib/Directory/Simplify/Instruction/CopyTimestamp.pm index fba95c9..e808409 100644 --- a/lib/Directory/Simplify/Instruction/CopyTimestamp.pm +++ b/lib/Directory/Simplify/Instruction/CopyTimestamp.pm @@ -9,9 +9,9 @@ require Directory::Simplify::Utils; # :squash-remove-end: sub new { - my $class = shift; + my ($class, %args) = @_; return bless { - @_, + %args, }, $class; } diff --git a/lib/Directory/Simplify/Instruction/Generator.pm b/lib/Directory/Simplify/Instruction/Generator.pm index b8a474e..204aad4 100644 --- a/lib/Directory/Simplify/Instruction/Generator.pm +++ b/lib/Directory/Simplify/Instruction/Generator.pm @@ -11,11 +11,11 @@ require Directory::Simplify::Instruction::Hardlink; # :squash-remove-end: sub new { - my $class = shift; + my ($class, %args) = @_; return bless { filehash => undef, min_size => 1, - @_, + %args, }, $class; } diff --git a/lib/Directory/Simplify/Instruction/Hardlink.pm b/lib/Directory/Simplify/Instruction/Hardlink.pm index 24d274e..cce7565 100644 --- a/lib/Directory/Simplify/Instruction/Hardlink.pm +++ b/lib/Directory/Simplify/Instruction/Hardlink.pm @@ -9,10 +9,10 @@ require Directory::Simplify::Utils; # :squash-remove-end: sub new { - my $class = shift; + my ($class, %args) = @_; return bless { freed => 0, - @_, + %args, }, $class; } diff --git a/lib/Directory/Simplify/Utils.pm b/lib/Directory/Simplify/Utils.pm index 5c05489..d0fe408 100644 --- a/lib/Directory/Simplify/Utils.pm +++ b/lib/Directory/Simplify/Utils.pm @@ -4,8 +4,9 @@ use strict; use warnings; sub addcommas { + my @numbers = @_; my @added; - foreach my $num (@_) { + foreach my $num (@numbers) { # don't split anything after the decimal my @parts = split /\./, $num; while ($parts[0] =~ s/(\d)(\d{3}(?:\D|$))/$1,$2/) { @@ -36,11 +37,12 @@ sub hr_size { sub shell_quote { # shell-escape argument for inclusion in non-interpolated single quotes + my @words = @_; my @transformed = map { (my $out = $_) =~ s/'/'\\''/g; "'$out'"; - } @_; + } @words; wantarray ? @transformed : $transformed[0]; } diff --git a/t/TestFunctions.pm b/t/TestFunctions.pm index 6c60dee..7b8275d 100644 --- a/t/TestFunctions.pm +++ b/t/TestFunctions.pm @@ -30,7 +30,7 @@ our @EXPORT = qw/ use constant SCRIPT => $ENV{SCRIPT} // abs_path dirname(__FILE__) . '/../simplify_static_dir-main.pl'; sub are_hardlinked { - my $starter = shift; + my ($starter, @files) = @_; my $gen_ident = sub { my ($dev, $ino) = stat $_[0]; @@ -38,7 +38,7 @@ sub are_hardlinked { }; my $starter_ident = $gen_ident->($starter); - foreach my $file (@_) { + foreach my $file (@files) { if ($gen_ident->($file) ne $starter_ident) { return 0; } @@ -47,7 +47,8 @@ sub are_hardlinked { } sub file_exists { - foreach my $file (@_) { + my @files = @_; + foreach my $file (@files) { unless (-e $file) { return 0; } @@ -56,12 +57,13 @@ sub file_exists { } sub filemtime { - (stat shift)[9]; + my $file = shift; + return (stat $file)[9]; } sub has_mtime { - my $mtime = shift; - foreach my $file (@_) { + my ($mtime, @files) = @_; + foreach my $file (@files) { if (filemtime($file) != $mtime) { return 0; } @@ -96,7 +98,8 @@ sub prep_tar { } sub run_script_capture { - my @cmd =(SCRIPT, @_); + my @args = @_; + my @cmd = (SCRIPT, @args); use IPC::Open3 qw/ open3 /; my $stderr = File::Temp->new( @@ -123,8 +126,9 @@ sub run_script_capture { } sub run_script { - print STDERR '+ ' . SCRIPT . " @_\n"; - system SCRIPT, @_; + my @args = @_; + print STDERR '+ ' . SCRIPT . " @args\n"; + return system SCRIPT, @args; } 1; diff --git a/t/freed-bytes-commas.t b/t/freed-bytes-commas.t index 1ba5ac6..7ffdeb8 100644 --- a/t/freed-bytes-commas.t +++ b/t/freed-bytes-commas.t @@ -17,8 +17,9 @@ my (undef, $stdout, $stderr) = run_script_capture('-f', $test_dir); ok "freed 1,048,576 bytes (1 MB)\n" eq $stderr, 'prints freed bytes with commas'; sub put_file { + my @files = @_; my $bytes = 1048576; # 1 MB - foreach my $file (@_) { + foreach my $file (@files) { open my $fh, '>', $file or die "Failed to open file $file for writing: $!"; for (my $bytes_written = 0; $bytes_written < $bytes; ++$bytes_written) {