我试过这个例子:
#!C:/Perl64/bin/perl.exe
$mickey = "Hi i'm Mickey";
$pluto = "Hi i'm Pluto";
print <<EOF;
$pluto
Hi i'm Goofy
$mickey
EOF
print <<'EOF';
$pluto
Hi i'm Goofy
$mickey
EOF
获得以下输出:
Hi i'm Pluto
Hi i'm Goofy
Hi i'm Mickey
$pluto
Hi i'm Goofy
$mickey
我想使用<< operator
使用whitout获得相同的行为。所以我尝试了另外一个:
#!C:/Perl64/bin/perl.exe
$mickey = "Hi i'm Mickey";
$pluto = "Hi i'm Pluto";
print STDOUT "$pluto
Hi i'm Goofy
$mickey";
实际打印:
Hi i'm Pluto
Hi i'm Goofy
Hi i'm Mickey
如何逃脱每个perl特殊字符?
我尝试使用print 'STDOUT' ...
而不是我想要的东西。
答案 0 :(得分:3)
如果您不希望插值发生,请使用单引号(或q/STRING/
quote operator)而不是双引号:
$mickey = "Hi I'm Mickey";
$pluto = "Hi I'm Pluto";
print STDOUT q{$pluto
Hi I'm Goofy
$mickey};
STDOUT
在这里也是多余的,这是默认值。 print 'foo $bar';
就足够了。
答案 1 :(得分:2)
print <<"EOF"; # <<EOF is short for <<"EOF"
$pluto
Hi i'm Goofy
$mickey
EOF
print <<'EOF';
$pluto
Hi i'm Goofy
$mickey
EOF
相当于
print
"$pluto
Hi i'm Goofy
$mickey
";
print
'$pluto
Hi i\'m Goofy
$mickey
';
注意所用引号之间的平行。
不幸的是,因为分隔符存在于文字中,所以必须将其转义。
答案 2 :(得分:0)
如何逃脱每个perl特殊字符?
使用“\”来做到这一点
my $var = "test";
print "\$var\n";
print "$var\n";
输出:
$var
test