当dir路径和文件名都是变量时,如何组装文件完整路径?

时间:2014-08-14 06:58:25

标签: perl

我有一个获取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; 不起作用,

如何在第二个目录中组装我的文件的完整路径表示?

感谢 沙哈尔

2 个答案:

答案 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";