foreach (@files) { /^(\w+)\W+(\w+)\W+(\w+)\W+(\w+)$/; next unless $1 && $2 && $3 && $4; rename "$some_dir/$_", "$some_dir/$1 $2 - $3 $4.mp3" or die "Could not rename file: $!"; }