=head1 DESCRIPTION Intended to take MP3 files following a unified naming convention (hence the UNC monniker) and provide object oriented methods for organizing them into genres and playlists. Both an extended playlist included genres and extended track information as well as a standard, filename-based .m3u format. Adding support for additional playlist formats (such as gqmpeg or iTunes) should be mostly trivial. Some filename conversions would be necessary. These are not supported as no need (read: demand) has been seen for such additional functionality. =head1 CONVENTION Anyone who has spent time downloading MP3's is aware of the mass disparity in how files are named. This is partly due to there being many different platforms which can encode MP3 files, but also due to the fact that there are also many different pieces of software that can encode. As if that werent enough, there is also a difference in preference among users of the files for they want their files to be named. After a brief survey of both my files, the files available for download, and the general output of programs available, I determined that the most widely used format (which also happened to contain all the necessary information for these procedures to be implemented) was the following: Artist - Album - Track Number - Track Title.mp3 This module does not care whether you name them .mp3 or .MP3. Case is of course important since UNIX is case-sensitive. Mac and Windows machines should not have problems with case since they are not case sensitive. The function that parses filenames into the hash format is mostly an OO wrapper around this statement: my @fields = split / - /, $filename, 4; With this statement, it makes it possible for the track title (but not the album title nor artist) to contain the ' - ' string. Thusly: # this will work Ween - Chocolate and Cheese - 13 - Buenas Tardes Amigo.mp3 # this will not The Barney - Love Brigade - You and Me - 01 - I love you.mp3 Please note that single digit numbers are prefixed with a 0. While this doesnt have a 'real' purpose, per se, it does provide some pretty formatting advantages: # a sample .m3u list # look mom, all the filenames line up: Ween - Chocolate and Cheese - 01 - Take Me Away.mp3 Ween - Chocolate and Cheese - 02 - Spinal Meningitis (Got Me Down).mp3 Ween - Chocolate and Cheese - 03 - Freedom of '76.mp3 # ... Ween - Chocolate and Cheese - 11 - Joppa Road.mp3 Ween - Chocolate and Cheese - 12 - Candi.mp3 Ween - Chocolate and Cheese - 13 - Buenas Tardes Amigo.mp3 Since this doesnt hurt anything and it does have the one nice benefit (and several encoders produce it), I am inclined to keep it in the convention laid out in this module. I have decided to be pretty unforgiving as far as data being malformatted. It is my hope that being rigorous about the naming convention will lead to easier file portability from one machine to the next. Please see the section on error reporting below for further information.