Переменные-ссылки


# Ссылки на скаляр
$a = $scalar;

# Ссылка на массив
$a = @array;
$x = $$a[0], ${$a}[0];
$x = $a->[0];
@x = @$a[2,3] = @{$a}[2,3];
@x = @$a = @{$a};
if (ref($a) ne ARRAY) { die ...}

# Ссылка на хеш
$a = %hash;
$x = $$a[$k];
$x = $a->{$k};
%x = %$x;
if (ref($a) ne HASH) { die ...}

# Ссылка на функцию
$a = ⊂
$a = sub { ... };
$retval = $a->(@args);
$retval = &$a(@args);

# Анонимные ссылки на массив
$ref = [ 1, 2, 3 ];
@$ref = (1, 2, 3);
$x = $$ref[0];

# Анонимные ссылки на хеш
$ref = { 'x'=>'a', 'y'=>'b' };