Вы получите предупреждение, если переопределите переменную my
, our
или state
в текущей области действия или операторе. Первая $i
на самом деле не является лексической переменной. Вы можете доказать это, используя Devel::Peek
:
use Devel::Peek;
for my $i (1) {
Dump $i;
}
SV = IV(0x81178c8) at 0x8100bf8
REFCNT = 2
FLAGS = (IOK,READONLY,pIOK)
IV = 1
В FLAGS нет флага PADMY
, который указывал бы на то, что $i
является лексической переменной, объявленной с my
.