2013-10-19 59 views
1

我試過了這個例子:獲得以下輸出獲取打印<< FILE(打印<< '文件')的相同的行爲到標準輸出

#!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 

我想獲得相同的行爲使用012out使用<< operator。所以我想這另一種:

#!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' ...沒有我正在尋找。

+2

閱讀有關Perl的報價這裏http://www.perlmonks.org/?node_id=401006 – Suic

回答

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';就夠了。

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 
'; 

注用引號之間的平行。

不幸的是,由於分隔符存在於文字中,因此您必須將其轉義。

+0

@ mpapec,固定。 – ikegami

0

我該如何逃避每個perl特殊字符?

使用 「\」 要做到這一點

my $var = "test"; 

print "\$var\n"; 
print "$var\n"; 

輸出:

$var 
test 
相關問題