为什么我需要在使用Perl的“Content-Type:text / html”之后两次放置“\ n”,但只使用Python一次?例如,以下Python脚本可以工作:
#!/usr/bin/python
print "Content-Type: text/html\n"
print "Hello World!"
但是以下Perl脚本不起作用(它提供了脚本头过早结束的错误消息):
#!/usr/bin/perl
print "Content-Type: text/html\n";
print "Hello World!";
相反,我需要添加额外的“\ n”才能使其正常工作:
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "Hello World!";
答案 0 :(得分:15)
因为Python中的print使用换行符打印并且在Perl中打印不会。
Python中的 print "Hello world!"
相当于perl中的print "Hello world!\n"
。 Perl 6有一个say
命令,它与Python的打印完全相同,但遗憾的是,Perl 6没有稳定的实现。在Perl 5.10或更高版本中,您可以通过在脚本中添加say
来使用use feature 'say'
。
答案 1 :(得分:10)
Perl的print
不添加换行符。 Perl的say
确实如此。这些是等价的:
# Python
print "Content-Type: text/html"
print ""
print "Hello World!"
# Perl
print "Content-Type: text/html\n";
print "\n";
print "Hello World!\n";
# Perl
local $\ = "\n";
print "Content-Type: text/html";
print "";
print "Hello World!";
# Perl
use 5.010;
say "Content-Type: text/html";
say "";
say "Hello World!";
我建议不要触摸$\
;它很容易影响你不希望它影响的代码。
答案 2 :(得分:1)
Python的print
自动输出换行符; Perl不会(除非你设置$\ = "\n"
)。对于较新的Perl,还有其他人提到的say
。