我想用Perl获取文件的绝对路径。该文件位于/a/b/c/file.txt
。所以,我想得到/a/b/c/
.我目前无法使用Cwd::cwd()
,因为实际的工作目录是/a/b/
。这不是一个错误,因为Perl脚本是从/a/b/
调用的。
那么,是否有一个Perl函数来捕获它,或者我必须使用正则表达式来找到它?
use File::Basename;
my $path = "/a/b/c/file.txt";
my ($filename, $dir) = fileparse($path);
如果文件名没有特殊字符,并且格式为 name.ext,则可以使用如下所示的正则表达式:
(.*/)[w-]+.[w]{3}
文件名可以由 A-Z、A-z、0-9 和 -(减号(组成