我正在尝试替换 VMS 上文本文件中的特定行。通常,这是一个简单的 Perl 单行代码。但是当替换端是包含 VMS 路径的符号时,我遇到了问题。这是文件和我尝试过的:
file1.txt 的内容:
foo
bar
baz
quux
尝试替换第 3 行:
$ mysub = "disk$data1:[path.to]file.txt"
$ perl -pe "s/baz/''mysub'/" file1.txt
产生以下输出:
foo
bar
disk:[path.to]file.txt
quux
看起来 Perl 太急于$data1
用不存在的变量的内容(即,什么都没有)替换路径的一部分。使用调试器运行证实了这一点。我没有提供/e
,所以我认为 Perl 应该按原样替换文本。有没有办法让 Perl 做到这一点?
(另请注意,我可以在 linux 命令行中重现类似的行为。)