Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这些对Perl';什么是印刷品?_Perl - Fatal编程技术网

这些对Perl';什么是印刷品?

这些对Perl';什么是印刷品?,perl,Perl,以下两种说法的区别在哪里 打印“姓氏=”,$myVal,“\n” 及 打印“姓氏=”.$myVal。“\n” 我对它们进行了测试,结果都是一样的。有什么区别吗 谢谢前者将打印列表中的每个项目,并用$,分隔。后者首先连接所有内容,因此没有任何内容可分离。除非$,中有可打印的内容,否则语句之间没有显著差异。据我所知打印也可以使用列表,我认为第一段代码(逗号分隔)就是这种情况。第二个(带“.”)只是字符串追加,换句话说,第一个调用发送三个参数以打印,而第二个调用发送一个参数 编辑:这里是打印可以接受的

以下两种说法的区别在哪里

打印“姓氏=”,$myVal,“\n”

打印“姓氏=”.$myVal。“\n”

我对它们进行了测试,结果都是一样的。有什么区别吗


谢谢

前者将打印列表中的每个项目,并用
$,
分隔。后者首先连接所有内容,因此没有任何内容可分离。除非
$,
中有可打印的内容,否则语句之间没有显著差异。

据我所知
打印
也可以使用列表,我认为第一段代码(逗号分隔)就是这种情况。第二个(带“.”)只是字符串追加,换句话说,第一个调用发送三个参数以打印,而第二个调用发送一个参数


编辑:这里是打印可以接受的列表,这是您正在传递的列表。Print只会对列表中的所有内容执行它的操作(即输出),即
姓氏=
$myVal
,以及
\n

第二个示例必须先将所有内容浓缩,然后打印出来


逗号的使用并不一致,这也是两者之间的区别

Perl程序员可能会这样写:

print "surname=$myVal\n";
它看起来确实在做同样的事情,不是吗?在你的例子中,它也做了同样的事情。如果将标量变量替换为数组,则差异更为明显

my @var = qw(some data);

print "value=", @var, "\n";
print "value=". @var. "\n";
区别在于传递给print函数的参数数量不同。如果使用连接运算符(.),则参数将连接到一个字符串中,print将获得一个参数。如果使用逗号,则print将获得参数列表

当然,可以在同一个打印调用中混合使用这些方法

print "surname=" ,$myVal . "\n";
另一个很好的例子是使用localtime的返回值

print 'The time is ', localtime, "\n";
print 'The time is '. localtime, "\n";

正如人们之前所说,
将字符串串联起来,
分离数组元素

使用
表单需要考虑的一件事是,由于内存管理,在某些非常特定的场景中会出现性能问题:
版本需要首先在内存中创建新字符串,并不断扩展寻址内存(有人可以在这一部分详细介绍一下吗?)。如果你在一个循环中打印100万次,使用上千个非常大的字符串串接,
版本与
版本相比,性能会非常差。这就像是将整个文件存储到内存中,而不是逐行处理。但在现代计算机的日常生活中,普通人不会注意到这个问题