Perl: Dirify string
my $dir = dirify('The s^#%@$!#! <b>title</b> ever'); # outputs 'The-S-Title-Ever' sub dirify { my $s = shift; $s =~ s!<[^>]+>!!gs; # Remove HTML tags. $s =~ s!<!<!gs; $s =~ s!&[^;\s]+;!!g; # Remove HTML entities. $s =~ s![^A-Za-z0-9-_ ]! !g; # Allow only alphanumeric chars. $s =~ s!\s+! !g; # Remove extra spaces. $s =~ s!\s$!!g; $s = lc $s; # Convert to lower-case. $s =~ s!(\b.)!\U$1!g; # Capitalize words (Comment out if you don't need this) $s =~ tr! !-!s; # Finally, change space chars to dashes. return $s; }