gpt4 book ai didi

perl - 相对绝对路径 perl

转载 作者:行者123 更新时间:2023-12-04 11:28:17 25 4
gpt4 key购买 nike

以下目录设置:

/dira/dirb
/dira/dirb/myprog.pl
/dira/dirb/testa/myfilesdir包含以下文件
/dira/dirb/testa/myfilesdir/file1.txt
/dira/dirb/testa/myfilesdir/file2.txt

当前目录:
/dir/dirb

./myprog.pl -p testa/myfilesdir

循环浏览文件
while (my $file_to_proc = readdir(DIR)) {
...

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

我想要的是
$myfile = /dira/dirb/testa/myfilesdir/file1.txt
$myfile = /dira/dirb/testa/myfilesdir/file2.txt

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

最佳答案

使用模块File::Spec .这里有一个例子:

use warnings;
use strict;
use File::Spec;

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

像这样运行它:
perl script.pl mydir/*

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

更新 有一个更有效的程序。感谢 TLP 的建议。
use warnings;
use strict;
use File::Spec;

for ( @ARGV ) {
if ( -f ) {
print File::Spec->rel2abs( $_ ), "\n";
}
}

关于perl - 相对绝对路径 perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com