sub Main { my @dirs = DirsForDonuts( '.../paths.txt' ); for my $dir( @dirs ){ DonutXmlChildren( $dir ); } } ## end sub Main sub DirsForDonuts { my( $dirfile ) = @_; my @dirs = path( $dirfile )->lines_utf8; s/\s+$// for @dirs; ## no trailing whitespace return @dirs; } ## end sub DirsForDonuts sub DonutXmlChildren { my( $directory , $date, $bak ) = @_; $date ||= POSIX::strftime( '%Y-%m-%d', localtime ); $bak ||= "$date.bak"; my @xml_files = XmlChildren( $directory ); for my $file ( @xml_files ) { Donut( $file, "$file-$bak" ); } } ## end sub DonutXmlChildren sub XmlChildren { return path( shift )->children( qr/\.xml$/ ); } ## end sub XmlChildren