有什么可以想象的区别
$x->{a}{b}
Run Code Online (Sandbox Code Playgroud)
和
$x->{a}->{b}
Run Code Online (Sandbox Code Playgroud)
对于任何允许的值$x->{a},在任何perl版本中> = 5.6?
amo*_*mon 10
不.这只是一种没有任何语义差异的语法快捷方式.
证明:编译时生成的操作码
$ perl -MO=Concise -e'$x->{a}{b}'
b <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
a <2> helem vK/2 ->b
8 <1> rv2hv[t3] sKR/1 ->9
7 <2> helem sKM/DREFHV,2 ->8
5 <1> rv2hv[t2] sKR/1 ->6
4 <1> rv2sv sKM/DREFHV,1 ->5
3 <#> gv[*x] s ->4
6 <$> const[PV "a"] s/BARE ->7
9 <$> const[PV "b"] s/BARE ->a
-e syntax OK
$ perl -MO=Concise -e'$x->{a}->{b}'
b <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
a <2> helem vK/2 ->b
8 <1> rv2hv[t3] sKR/1 ->9
7 <2> helem sKM/DREFHV,2 ->8
5 <1> rv2hv[t2] sKR/1 ->6
4 <1> rv2sv sKM/DREFHV,1 ->5
3 <#> gv[*x] s ->4
6 <$> const[PV "a"] s/BARE ->7
9 <$> const[PV "b"] s/BARE ->a
-e syntax OK
Run Code Online (Sandbox Code Playgroud)
另请参阅perlref,使用参考,规则3部分.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |