在Perl

时间:2017-06-01 07:58:25

标签: perl

我正在尝试使用perl命令打开文件。当我在文件路径之间传递变量时,perl无法打开文件:(此处 $ line

open(FL, "<C:/Users/admin/Documents/Projects/$line/project.txt") or die "Could not open file $!";

如果我尝试通过在路径中传递完整路径而不是变量($ line)来打开文件,Perl就能够成功打开文件:

open(FL, "<C:/Users/admin/Documents/Projects/projectName/project.txt") or die "Could not open file $!";

有人可以指导我如何实现这一目标。我有一个项目列表,我不能手动传递每个项目的名称,但我需要通过将 projectName s作为变量 $ line 来实现。

注意:所有 $ line 变量都是我的 projectName s

2 个答案:

答案 0 :(得分:4)

您是否正在从其他文件中读取项目名称?如果是,您是否记得最后删除\n(使用chomp $line或类似内容)?

答案 1 :(得分:1)

假设你的$line有一些不允许的特殊字符,所以我们购买了这个角色,使用quotemeta

$line = qutoemeta($line); 
open  my $fh, "<" ,$line or die "Error opening $!";

您将按$!修正错误。您已经在代码中添加了它。 请按照它的说法。