首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相对绝对路径

相对绝对路径
EN

Stack Overflow用户
提问于 2012-04-27 21:22:56
回答 1查看 2.9K关注 0票数 8

下面是目录设置:

代码语言:javascript
复制
/dira/dirb
/dira/dirb/myprog.pl

/dira/dirb/testa/myfilesdir包含以下文件

代码语言:javascript
复制
/dira/dirb/testa/myfilesdir/file1.txt
/dira/dirb/testa/myfilesdir/file2.txt

当前目录:

代码语言:javascript
复制
/dir/dirb

./myprog.pl  -p testa/myfilesdir

循环浏览文件

代码语言:javascript
复制
while (my $file_to_proc = readdir(DIR)) {
...

$file_to_proc = file1.txt
$file_to_proc = file2.txt

我想要的是

代码语言:javascript
复制
$myfile = /dira/dirb/testa/myfilesdir/file1.txt
$myfile = /dira/dirb/testa/myfilesdir/file2.txt

尝试了几个不同的perl模块(CWD rel2abs),但它使用的是当前目录。我不能使用当前目录,因为输入可以是相对路径或绝对路径。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-27 21:30:59

使用模块File::Spec。下面是一个示例:

代码语言:javascript
复制
use warnings;
use strict;
use File::Spec;

for ( @ARGV ) { 
    chomp;
    if ( -f $_ ) { 
        printf qq[%s\n], File::Spec->rel2abs( $_ );
    }   
}

像这样运行它:

代码语言:javascript
复制
perl script.pl mydir/*

它将打印文件的绝对路径。

使用更高效的程序更新了。多亏了TLP的建议。

代码语言:javascript
复制
use warnings;
use strict;
use File::Spec;

for ( @ARGV ) { 
    if ( -f ) {
        print File::Spec->rel2abs( $_ ), "\n";
    }   
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10351440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档