", "output.html") or die "Can't open output.txt: -6ren">
gpt4 book ai didi

Perl:我如何写入 bin 以外的目录?

转载 作者:行者123 更新时间:2023-12-05 01:01:48 26 4
gpt4 key购买 nike

我正在尝试用 perl 输出一个文件。

我打开文件并像这样输出..

open(my $out, ">",  "output.html") or die "Can't open output.txt: $!";
print $out "something!";

这很完美。如果我把它改成这个

open(my $out, ">",  "c:\somedirectory\output.html") or die "Can't open output.txt: $!";
print $out "something!";

它确实运行良好(我没有收到“无法打开 output.txt”消息)但是当我查看目录时,我刚刚输出的文件不在那里。如果我没有留下任何路径,文件会在垃圾箱中找到。

我在这里错过了什么?我如何让它输出另一个位置。

另外..我正在使用这个 .bat 文件运行 .pl。

cd\

cd \xampp\perl\bin

perl "C:\somedirectory\languages.pl"

pause

最佳答案

在双引号内,\ 开始一个转义序列。无法识别的转义符会被忽略。

print "abc\tdef";
# abc def
print "c:\somedirectory\output.html";
# c:somedirectoryoutput.html
print qq(c:\somedirectory\output.html);
# c:somedirectoryoutput.html

您可以将反斜杠加倍,以便让它们通过双引号。

print "c:\\somedirectory\\output.html";
# c:\somedirectory\output.html
print qq(c:\\somedirectory\\output.html);
# c:\somedirectory\output.html

您可以使用单引号而不是双引号,因为在单引号内无法识别转义序列。

print 'c:\somedirectory\output.html';
# c:\somedirectory\output.html
print q(c:\somedirectory\output.html);
# c:\somedirectory\output.html

最后一个选项:Win32 和 NT API 很乐意将 / 当作目录分隔符,就像 \ 一样。虽然看起来很奇怪,但以下方法也可以:

open(my $out, ">", "C:/somedirectory/output.html");

关于Perl:我如何写入 bin 以外的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com