[Moscow.pm] Scalar::Util::weaken

Ruslan Zakirov ruz на bestpractical.com
Пн Мар 3 04:52:55 PST 2008


#!/usr/bin/perl
use Devel::Peek;
my %count;
my $a;
for(1..4)
{
    $a = {};
    print STDOUT $_,'   ', $a, "\n";
    "$a";
}
print "\n\n\n";
print %count;

для шеа вызывается stringify, который строет строку, а потом ссылку на
нее записывает в PVHV, а по каким причина нельзя использовать после
этот скаляр не понятно.

Так тоже интересно:

#!/usr/bin/perl
use Devel::Peek;
use Scalar::Util qw(refaddr);
my %count;
my $a;
for(1..10)
{
    $a = {};
    print STDOUT $_,'   ', $a, "\n";
    $count{refaddr($a)}++;
}
print "\n\n\n";
while (my ($k, $v) = each %count ) {
    printf "0x%x - %d\n", $k, $v;
}



2008/3/1 Denis Evdokimov <evdokimov.denis на gmail.com>:
>  Тут так же самая разница:
>  >
>  >  #!/usr/bin/perl
>  >
>  > my %count;
>  >  my $a;
>  >  for(1..100)
>  >  {
>  >     $a = {};
>  >     print $_,'   ', $a, "\n";
>  >  #    $count{$a}++; #  Вот эта строка
>  >  }
>  >
>  > print "\n\n\n";
>  >  print %count;
>  >
>
>  И правда, но откуда эта разница - Вот основной вопрос.
>
>
> ______________________________________________________________________
>  Moscow.pm mailing list
>  moscow-pm на pm.org | http://moscow.pm.org
>  http://mail.pm.org/mailman/listinfo/moscow-pm



-- 
Best regards, Ruslan.


Подробная информация о списке рассылки Moscow-pm