如何为Perl脚本打印添加换行符

时间:2013-10-03 09:53:55

标签: macos perl

我遇到基本perl脚本的问题。下面是脚本。

$message = "Hello, World!";
print $message;

问题是它打印然后在同一行上有我的用户名命令提示符。我提供了所描述问题的屏幕截图。我只想在脚本中添加换行符。这可能吗?

enter image description here

1 个答案:

答案 0 :(得分:10)

  

我只想在脚本中添加换行符。这可能吗?

是的 - 使用换行符\n

my $msg = "Hello World!\n";

注意perl中单引号和双引号之间的区别。以上将使用换行符打印。但是这个:

my $msg = 'Hello World!\n';

最后会打印文字\ n。区别在于双引号字符串是插值:变量和转义序列(如\n)可以预测地替换。单引号字符串不是,所以:

print '$msg';

还会按字面打印$ msg,而不是变量$msg的内容。

\n或多或少是普遍的;我不知道它是否源自C或之前的东西,但它和各种其他反斜杠字符(例如,\t for tab)对于我所知道的所有语言都是通用的,包括shell。正确的术语实际上是转义序列,因为\是影响下一个字符解释的escape character。要在interpolated string中打印单个反斜杠,必须先使用转义:

print "\\ <- A single backslash\n";

反斜杠也用作正则表达式中的转义字符。单引号和双引号字符串之间的区别不像反斜杠转义那样通用,但它在其他一些高级语言中使用。