NAME

String::MFN - 'Normalize' a string in the manner of the mfn utility

VERSION

Version 1.27

SYNOPSIS

use String::MFN;

my $sane_string = mfn($retarded_string);
...

DESCRIPTION

Normalizes a string. Normalization, in brief, means modifying the string to resemble a sane UNIX[TM] filename while retaining information carried by the original formatting.

Normalization, in specific, consists of characters other than [\w\-\.\+] being removed, lowercasing of all letters, separation of internaCaps, separation of leading numerals from trailing non-numerals, replacement of "bracketing" characters ({[(<>)]}), replacement of ampersands, and collapsing (things that look like) repeating extentions.

Some concrete examples (filenames found by googling for "mp3 playlist"):

Frank Sinatra & Count Basie - More.mp3
frank_sinatra_and_count_basie-more.mp3

Cornershop - Heavy Soup [Outro] [*] [*].mp3
cornershop-heavy_soup-outro.mp3

Soundtrack - American Pie 2\05 - Uncle Kracker - (Im Gonna) Split This Room In Half.mp3
soundtrack-american_pie_205-uncle_kracker-im_gonna-split_this_room_in_half.mp3

12. Only You (Bad Boys Remix)(Ft. The Notorious B.I.G.).mp3
12-only_you-bad_boys_remix-ft_the_notorious_b.i.g.mp3

Ultramagnetic MCs - Critical Beatdown.mp3.mp3.mp3
ultramagnetic_mcs-critical_beatdown.mp3

FUNCTIONS

mfn

Normalizes a string. Returns the normalized string. If no argument is given, mfn operates on $_.

AUTHOR

Shawn Boyette, <mdxi@cpan.org>

BUGS

internaCap separation only works on Latin characters with no diacriticals.

Please report any bugs or feature requests to bug-string-mfn@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE

Copyright 2003-2005 Shawn Boyette, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.