【发布时间】:2017-04-28 09:55:35
【问题描述】:
我是 Perl 新手。
我正在尝试检查现有变量 $file_path 是否等于 if 条件下的特定路径。
my $PRODPATH = '/path/to/prod';
if ( $file_path eq "$PRODPATH/specific/path/to/file" ) {
print "File is same as earlier \n\n";
}
else {
print "File is not same as earlier \n\n";
}
但由于字符串中的特殊字符$ 与$file_path 进行比较,因此流程不会进入任何条件。
路径中的斜线 / 是否也会产生任何问题?
【问题讨论】:
-
我不明白你的问题。 Perl 将插入变量,所以
"$PRODPATH/specific/path/to/file"变为"/path/to/prod/specific/path/to/file",这就是将与$file_path进行比较的内容。斜线的数量/需要相同。也许$file_path有一个斜杠,即以file/结尾? -
这感觉可能是 XY 问题。你想在这里完成什么?
-
"
$PRODPATH是一个环境变量" - 不,不是。这是一个 Perl 变量。您是否使用严格和警告? -
请不要对您的问题进行完全改变问题的更改。您的最后一次编辑似乎表明您已按照我的建议尝试使用
$ENV{PRODPATH},但您没有说要这样做,也没有完成我要求的其他诊断。在答案中添加 内容很好,但您永远不应该通过更改您的问题来使其他人的 cmets 或答案无效。如果您对收到的建议有后续问题,那么您应该提出一个新问题。
标签: string perl if-statement special-characters filepath