use strict; use warnings; my $folder = $ARGV[0] ? $ARGV[0] : '.'; my $file; opendir DIR, $folder or die "Can't open $folder : $!\n"; while (defined($file = readdir DIR)){ next if $file eq '.' or $file eq '..'; $file =~ tr/_\t\r\n;:/ /; $file =~ s/\s+/ /g; $file =~ s/- *(?:track *)?\d+ *-/-/gi; $file =~ s/^\d+ *- *|^\d+ *\. *|^[(\[{] *\d+ *[)\]}] *//; $file =~ s/(\S)-(\S)/$1 - $2/g; $file =~ s/(\w+)/\u$1/g; print "$file\n"; } closedir DIR;