sub process_files {
my ($function, $parm, $message, $extension, @list) = @_;
...
####
sub process_files {
my ( $SubArgs ) = @_;
my $function = $SubArgs->{ function }
my $message = $SubArgs->{ message }
my $parm = $SubArgs->{ parm } || ""; # If no parameter, default to "".
my $extension = $SubArgs->{ extension };
my @list = @{ $SubArgs->{ list } };
...
####
foreach my $file (@list) {
my $Newfile = substr($file, 0, 2);
$Newfile = $Newfile . $extension;
print "($function) $message $file to $Newfile\n";
@args = ("$function", "$parm", "$Newfile", "$file");
system(@args) == 0 or die "system @args failed: $?";
push @returnlist, $Newfile;
}
####
# rename files to 01.mp3, 02.mp3, etc.
my @mp3list =
process_files( { function => "mv", message => "renaming", extension => "\.mp3", list => @list } );
# call mpg123 to convert .mp3 to .wav
my @wavlist =
process_files( { function => "mpg123", param => "-qw", message => "converting", extension => "\.wav", list => @mp3list } );
# call sox to convert each .wav to .cdr
my @cdrlist =
process_files( { function => "sox", message => "converting", extension => "\.cdr", list => @wavlist } );