Perl连接

时间:2016-08-13 22:33:13

标签: perl

我正在观看针对perl的UDEMY培训视频,但视频不清晰,看起来包含错误。

培训展示了如何使用以下示例连接2个字符串:

#!usr/bin/perl

print $str = "Hi";
print $str .= " there\n"; 

然而,当我运行脚本时,输出是: HiHi那里

第二个Hi来自哪里?我错过了什么吗?

2 个答案:

答案 0 :(得分:8)

第一个语句将值“Hi”赋给$ str,然后打印它。第二个语句将值“there \ n”添加到$ str,使$ str等于“Hi there \ n”,然后打印它。因此,您获得的输出对于您告诉口译员要做的事情是正确的。

答案 1 :(得分:7)

如果培训真的显示了这个脚本,就抛弃它 - 这不是人们通常会编写的代码。

$str = "Hi"将变量$str设置为字符串"Hi"。大多数情况下,不使用赋值的值,仅对其副作用执行赋值,即改变变量的值。但是,在Perl中,赋值确实有一个值,即赋给变量的值。指令print $str = "Hi"打印指定的值,即打印字符串"Hi"

第二条说明为$str分配的值包含$str" there\n"连接的旧值,即$str设置为"Hi there\n"。再一次,打印分配的值,即打印字符串"Hi there\n"

通常不会使用赋值的值:

#!/usr/bin/env perl
my $str = "Hi";
$str .= " there\n";
print $str;