If you're just trying to extract a file from a path then
something like
$var =~ /([^\\\/]*)$/ and $file = $1
should work. (I'm sure that there's a FAQ on this). Or you might want to try one of the File::Path modules, but that's probably overkill. | [reply] [d/l] |
So... what? you want to get a scalar var containing the filename? So you can print it out or something?
If that's what you want, There's A Lot More Than One Way To Do It. Don't let anyone around here hear you say "Perl doesn't let me search and replace..." ! If anyone can search and replace it's Perl.
Assuming you have
my $filepath = 'c:\somedir\file.ext'
and you want to get $filename eq 'file.ext'
then
$filepath =~ /([\w|\.]*)$/;
my $filename = $1;
Oughta do it - i.e. capture the longest possible string at the end of the filepath that is either a word character (alpha-num or _) or a dot. Or if you think there might be non-word characters in the file name,
$filepath =~ /([^\\|^\/]*)$/; - capture the longest string at the end that doesn't have either a "\" or a "/".
I'm no regex guru, so there may be obscure pitfalls in either of these, or a neater way to do it... but that's what I'd do.
Of course, I may have completely mis-understood your question again :)
§ George Sherston | [reply] [d/l] [select] |