【发布时间】:2015-04-16 07:07:15
【问题描述】:
我有一个 perl 脚本,我在其中将目录路径作为输入。 目录里面有xml文件。
在我的代码中,我正在遍历所有 xml 文件并为所有 xml 文件创建绝对路径。代码工作正常。
#!/usr/bin/perl
use File::Spec;
$num_args = $#ARGV + 1;
if ($num_args != 1) {
print "\nUsage: $0 <input directory>\n";
exit;
}
my $dirPath = $ARGV[0];
opendir(DIR, $dirPath);
my @docs = grep(/\.xml$/,readdir(DIR));
foreach my $file (@docs)
{
my $abs_path = join("",$dir,$file);
print "absolute path is $abs_path";
}
我的问题是, 连接 $dirPath 和 $file 时不带分隔符,这意味着 $dirPath 必须以“/”结尾。那么 perl 中是否有任何方法或内置函数可以处理这种情况并替换 join 方法。
我只想不用担心分隔符“/”。即使使用路径作为“/test/dir_to_process”或“/test/dir_to_process/”调用脚本,我也应该能够生成所有存在的 xml 文件的正确绝对路径,而不必担心分隔符。
如果有人有任何建议,请告诉我。
【问题讨论】:
-
当您接受我之前关于相同代码的回答 (stackoverflow.com/a/28503335/725418) 时,我假设您了解我的 cmets 关于代码的内容(顺便说一下,这使这个问题变得多余)。现在阅读您的代码时,我发现您没有使用我所说的anything,甚至没有使用严格和警告。有什么不明白的地方吗?