如何将变量名称写入文件而不是其值

0 variables perl

我是Perl的新手,我有一个基本的问题.我需要编写一个包含"$"符号的文本文件.例:

unless(open FILE, '>'.$file){ die "Unable to create $file"; } print FILE "$tmp\n";

我希望perl能够将"$ tmp"写入我的文件,而不是它的值.在我的perl脚本中,我不希望"$ tmp"成为变量......只是一个字符串.在运行我的脚本时,它会抱怨因为没有定义变量.如果我定义它,它给出值"0".我知道必须要有办法.我已经尝试定义值具有相同字母的文本,但它不起作用:我的$ tmp ="$ tmp"我也尝试连接"$"simbol和文本; 不起作用:我的$ tmp ="$"."TMP"

Sob*_*que 5

这是关于引用插值.

Perl以不同的方式处理不同类型的引号.

例如:

my $tmp = 'fish';

print $tmp, "\n";
print "$tmp\n";
print '$tmp\n';
print "\n";

print q{$tmp},"\n"
Run Code Online (Sandbox Code Playgroud)

双引号通常意味着'这是一个字符串,但首先处理它'.这意味着'处理'反斜杠以转义字符,并将变量扩展为其值.

单引号通常表示"不处理它".

您还可以通过使用反斜杠作为前缀来转义被插值的元字符.例如:

print "\$tmp\n";
Run Code Online (Sandbox Code Playgroud)

q{}类型的报价,您可以使用任意分隔符,这是在那么自然有引号中的字符串非常有用.

my $tmp2 = q{'"/\''"\n};
print $tmp2,"\n";
Run Code Online (Sandbox Code Playgroud)

你也可以:

print q|!"£$%^&*()_|;
print q#!"£$%^&*()_#;
Run Code Online (Sandbox Code Playgroud)

(等等.).

作为一个样式点,我建议 - 当你没有任何动态内容时,你应该尝试使用单引号,因为它清楚地表明它根本没有被插值. q{}样式引用对于用引号来澄清字符串非常有帮助.

也可以看看:

http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators