我有一个获取2个目录名称的perl脚本,并遍历第一个目录中的所有文件,并在第二个目录中找到它们(并在那里进行一些处理)。
以下内容:
opendir( SourceDir, $first_dir);
my @files = readdir(SourceDir);
foreach my $file (@files){
my $orig_file = $second_dir"/"$file;
print $orig_file . "\n";
}
` 但 我的$ orig_file = $ second_dir“/”$ file; 不起作用,
如何在第二个目录中组装我的文件的完整路径表示?
感谢 沙哈尔
答案 0 :(得分:2)
您需要进行字符串插值或连接。
my $orig_file = "$second_dir/$file"; # Interpolated variables
my $orig_file = $second_dir . "/" . $file; # Concatenated variables
请注意,请务必在每个脚本中加入use strict;
和use warnings
。此外,请确保在您进行文件或目录处理时随时添加use autodie;
。
以下是您的脚本清理:
use strict;
use warnings;
use autodie;
my $first_dir = '....';
my $second_dir = '....';
open my $dh, $first_dir;
while (my $file = <$dh>) {
my $orig_file = "$second_dir/$file";
print $orig_file . "\n";
}
答案 1 :(得分:2)
my $orig_file = $second_dir"/"$file; #<-- wrong
你应该写:
my $orig_file = $second_dir . "/" . $file;
或者这个:
my $orig_file = "$second_dir/$file";