#!/usr/bin/perl
use MP3::M3U::Parser;
use File::Copy;
my $parser = MP3::M3U::Parser->new( %options );
$save_path="/cygdrive/g/Playlist/";#where you will be saving the output
$parser->parse("playlist_file.m3u");
@result=$parser->result;
$songs=@result[0]->{total};
if(!-e $save_path.@result[0]->{list}){ #make the folder to hold the playlist
mkdir $save_path.@result[0]->{list};
}
$copy_path=$save_path.@result[0]->{list}."\\/";
$drive=@result[0]->{drive};
$drive=~s/^([A-Za-z]):\\\\?/\\/cygdrive\\/$1\\//;
for($i=0;$i<$songs;$i++){
my $filename="";
$details=@result[0]->{data}->[$i];
$filename=$details->[0];
$filename=~s/\\r//g;
$filename=~s/\\\\/\\//g; #translate windows filenames to *nix style
$orig_file="$drive.$filename";
$new_filename=$details->[4]."_".$details->[3].".mp3";
$new_filename=sprintf("%04d_%s",$i+1,$new_filename);
print "Copying $orig_file to $copy_path"."$new_filename\\n";
copy($orig_file,$copy_path.$new_filename);
}