11 package C;
12 $_ = 5;
13 print "$_\n$C::_\n$::_\n";
5
5
我々は$_
はPerlでスーパーグローバル変数であるが、なぜこの変数に最初割り当てが同時に$::_
への割り当ての原因になります知っているように?最後print
で
UPDATE
package C;
$_ = 5;
print "$_\n$C::_\n$::_\n";
package main;
print "####in main::\n";
$_ = 2;
print "$_\n$::_\n";
package A;
our $_ = 1;
$_ = 4;
print "####in A::\n";
print "$_\n$::_\n$A::_\n";
print "####in B::\n";
package B;
$_ = 3;
print "| $_ | \n
|$::_ | \n
|$B::_\n";
、あなたは$_
と$::_
が異なっていることがわかります。
| 3 |
|2 |
|
アップデートに関して:私はあなたの問題を再現できません。ここでは、$ _は$ _と全く同じです。どのPerlバージョンを使用していますか? –
これは '5.8.8' ... –
古代版のperlを使うとperl deltasを最初に読んでみることができますhttp://perldoc.perl.org/index-history.html –