nataraj: (Бритый небритый)
[personal profile] nataraj
Вот интересно. В первом случае можно поменять значение по ссылке. Во втором -- нельзя. Ругается.

Data::Dumper выводит обе ссылки абсолютно идентично...

#!/usr/bin/perl

use strict;

my $aaa = 'aaa';
my $h = {
    aaa => \ $aaa,
    bbb => \ "bbb",
};

my $r = $h->{aaa};

$$r="changed";

$r = $h->{bbb};

$$r="changed";


Ну и вопрос, как без заведения дополнительных переменных сделать значение по второй ссылке mutable.

Date: 2015-12-16 11:36 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Сделать дополнительные переменные lexically scoped.
Чтобы глобальное namespace не засоряли.

sub _($) {
  my $var = $_[0];
  return \$var;
}


И далее инциализировать элементы хэша как
...
 'bbb'=>_("bbb"),
....

Date: 2015-12-17 10:37 pm (UTC)
lodin: A bearded hacker in a hat (Шляпа)
From: [personal profile] lodin
Оу. Вот это грабля!

Вроде бы do { my $t = \"bbb" } тоже работает, но как-то длинновато...

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 20th, 2026 05:12 pm
Powered by Dreamwidth Studios