Perl连接运算符与追加运算符

Perl连接运算符与追加运算符,perl,append,operators,concatenation,Perl,Append,Operators,Concatenation,首先,这里是直接学习Perl的示例(第29页) 这两种方法中有一种更“正确”,还是出于速度或句法原因而更受欢迎?查看每个选项的简明输出: perl-MO=简明,-exec-e'my$str=“a”$str=$str。" ";' 1进入 2下一状态(主1-e:1)v:{ 3常数[PV“a”]s 4 padsv[$str:1,2]sRM*/LVINTRO 5个设计vKS/2 6下一状态(主2-e:1)v:{ 7 padsv[$str:1,2]s 8常数[PV”“]s 9康卡特[$str:1,2]sK

首先,这里是直接学习Perl的示例(第29页)

这两种方法中有一种更“正确”,还是出于速度或句法原因而更受欢迎?

查看每个选项的简明输出:

perl-MO=简明,-exec-e'my$str=“a”$str=$str。" ";'
1进入
2下一状态(主1-e:1)v:{
3常数[PV“a”]s
4 padsv[$str:1,2]sRM*/LVINTRO
5个设计vKS/2
6下一状态(主2-e:1)v:{
7 padsv[$str:1,2]s
8常数[PV”“]s
9康卡特[$str:1,2]sK/TARGMY,2
a休假[1参考]vKP/REFC
-e语法正常
perl-MO=简明,-exec-e'my$str=“a”;$str.=“a”
1进入
2下一状态(主1-e:1)v:{
3常数[PV“a”]s
4 padsv[$str:1,2]sRM*/LVINTRO
5个设计vKS/2
6下一状态(主2-e:1)v:{
7 padsv[$str:1,2]sRM
8常数[PV”“]s
9混凝土[t2]vKS/2
a休假[1参考]vKP/REFC
-e语法正常
虽然它们略有不同(
=
在无效上下文中进行连接,而另一个在标量中进行连接),但选择其中一个的主要原因是样式/可维护性。我更喜欢写:

$str .= " ";
主要是为了便于键入,而且很明显,您在不必检查RHS上的变量是否与LHS上的变量相同的情况下将其追加到字符串的末尾


本质上:使用您喜欢的任何方法!

我不知道perl解释器是否足够聪明,可以看出第一种方法与第二种方法相似。但在我看来,第二种方法更好(至少出于语义原因,因为它意味着在末尾添加此字符串)。如果这两种方法中的一种更快,那么这可能是第二种。@CasimiritHippolyte而且打字也更快!它还避免了变量名上的打字错误。我同意@CasimiritHippolyte,出于美观的原因,我当然更愿意保留第二种方法。谢谢大家!偏好当然会在这里发挥作用。不过,我确实相信您的主要的一点是,它明显地附加到字符串的末尾,而不必检查变量,这为第二个选项提供了支持。但是,同样,这只是我的观察/偏好。谢谢!
$str .= " ";