http://www.perlmonks.org?node_id=729496


in reply to Re: Regex To Remove File Extension
in thread Regex To Remove File Extension

File::Basename says

$basename = basename($fullname,@suffixlist);

If @suffixes are given each element is a pattern (either a string or a qr//) matched against the end of the $filename. The matching portion is removed and becomes the $suffix.

So File::Basename doesn't solve the original problem, it requires the solution before it can be used.

Replies are listed 'Best First'.
Re^3: Regex To Remove File Extension
by Nkuvu (Priest) on Dec 15, 2008 at 16:23 UTC

    Of course if you have a manageable list of extensions, you could populate the suffix list and use File::Basename very easily. That is, the original post says "extension might not always be txt," but that doesn't indicate the scope of potential extensions. Maybe it's just txt, html, htm, pl and cgi (just a random group of extensions chosen). In which case I'd lean towards the File::Basename solution rather than creating a regex unique to this script.

    Or maybe the AnonyMonk means to be able to remove any extension, in which case File::Basename isn't the best solution. Obviously the AnonyMonk will need to choose the best approach, but I wouldn't discount File::Basename for a limited number of extensions.