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;
####
01-Paul_Oakenfold_-_01_-_HHC_-_We're_Not_Alone.mp3
04.Paul_Oakenfold_-_04_-_Red_Sun_-_This_Love.mp3
05. Paul_Oakenfold_-_05_-_Ryuchi_Sakamoto_-_Little_Budha.mp3
Paul_Oakenfold_-_Track 06_-_Man_With_No_Name_-_Teleport.mp3
Paul_Oakenfold_-_07_-_Terrorvision_-_Conspiracy.mp3
Paul_Oakenfold_-_08_-_man_with_no_name_-_Sugar_Rush-retry.mp3
Paul_Oakenfold_-_09_-_Eric_Serra_-_Cute_Name.mp3
Paul_Oakenfold_-_10_-_State_of_Emergency_-_Banks_of_Babylon.mp3
Paul_Oakenfold_-_11_-_Juno_Reactor_-_Jungle_High.mp3
Paul_Oakenfold_-_12_-_Ennio_Morricone_-_Miscrere.mp3
Paul_Oakenfold_-_13_-_Virus_-_Moon.mp3
Paul_Oakenfold_-_14_-_Grace_-_If_I_Could_Fly.mp3
Paul_Oakenfold_-_15_-_Our_House_-_Floor_Space-retry.mp3
[02]Paul_Oakenfold_-_02_-_Ryuchi_Sakamoto_-_Merry_Christmas_Mr_L.mp3
[03] Paul_Oakenfold_-_03_-_Y-Traxx_-_Mystery_Land.mp3
####
Paul Oakenfold - HHC - We'Re Not Alone.Mp3
Paul Oakenfold - Red Sun - This Love.Mp3
Paul Oakenfold - Ryuchi Sakamoto - Little Budha.Mp3
Paul Oakenfold - Man With No Name - Teleport.Mp3
Paul Oakenfold - Terrorvision - Conspiracy.Mp3
Paul Oakenfold - Man With No Name - Sugar Rush - Retry.Mp3
Paul Oakenfold - Eric Serra - Cute Name.Mp3
Paul Oakenfold - State Of Emergency - Banks Of Babylon.Mp3
Paul Oakenfold - Juno Reactor - Jungle High.Mp3
Paul Oakenfold - Ennio Morricone - Miscrere.Mp3
Paul Oakenfold - Virus - Moon.Mp3
Paul Oakenfold - Grace - If I Could Fly.Mp3
Paul Oakenfold - Our House - Floor Space - Retry.Mp3
Paul Oakenfold - Ryuchi Sakamoto - Merry Christmas Mr L.Mp3
Paul Oakenfold - Y - Traxx - Mystery Land.Mp3