在我看来,如果人们使用以下内容,可以解决Perl标签中的许多问题:
use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)
我认为有些人认为这些类似于训练轮子或不必要的并发症,这显然不是真的,因为即使是非常熟练的Perl程序员也会使用它们.
似乎大多数精通Perl的人总是使用这两个pragma,而那些从使用它们中获益最多的人很少这样做.所以,我认为这将是一个好主意,有一个问题联系起来,鼓励人们时至use strict和warnings.
那么,为什么一个Perl的开发use strict和warnings?
我有一个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";
}
Run Code Online (Sandbox Code Playgroud)
我在这里的问题是,在没有分隔符的情况下连接$ dirPath和$ file意味着$ dirPath必须以“ /”结尾。因此,在perl中是否有任何方法或内置函数可以照顾这种情况并替换join方法。
我只想不用担心分隔符“ /”。即使以“ / test / dir_to_process”或“ / test / dir_to_process /”路径调用脚本,我也应该能够为存在的所有xml文件生成正确的绝对路径,而不必担心分隔符。
让我知道是否有人有任何建议。