Это вещи, о которых вы не должны думать с динамическим языком, таким как Perl. Даже несмотря на то, что вы можете получить ответ о том, что делает текущая реализация, это не функция, и вам не следует полагаться на нее.
Определите ваши переменные в кратчайшей возможной области.
Однако, чтобы быть просто любопытным, вы можете использовать модуль Devel :: Peek , чтобы немного обмануть, чтобы увидеть адрес внутренней (не физической) памяти:
use Devel::Peek;
foreach ( 0 .. 5 ) {
my $var = $_;
Dump( $var );
}
В этом небольшом случае адрес заканчивается тем же. Это не гарантия, что она всегда будет одинаковой для разных ситуаций или даже для одной и той же программы:
SV = IV(0x9ca968) at 0x9ca96c
REFCNT = 1
FLAGS = (PADMY,IOK,pIOK)
IV = 0
SV = IV(0x9ca968) at 0x9ca96c
REFCNT = 1
FLAGS = (PADMY,IOK,pIOK)
IV = 1
SV = IV(0x9ca968) at 0x9ca96c
REFCNT = 1
FLAGS = (PADMY,IOK,pIOK)
IV = 2
SV = IV(0x9ca968) at 0x9ca96c
REFCNT = 1
FLAGS = (PADMY,IOK,pIOK)
IV = 3
SV = IV(0x9ca968) at 0x9ca96c
REFCNT = 1
FLAGS = (PADMY,IOK,pIOK)
IV = 4
SV = IV(0x9ca968) at 0x9ca96c
REFCNT = 1
FLAGS = (PADMY,IOK,pIOK)
IV = 5