[Moscow.pm] Эх .. знали бы что у перла внутри - перешли бы на питон.

Ruslan Zakirov ruz на bestpractical.com
Вт Дек 9 18:59:10 PST 2008


2008/12/9 Vany Serezhkin <ivan на serezhkin.com>:
> Привет.
>
> Помнится я Монсу обещал показать как "Это" и "Не множко другой перл"
>
> Вот такая программа :
> #!/usr/bin/perl
> use strict;
> use Refmonitor;
>
> my $a=new RefWatcher;
> my @b=(\$a)x4;
> while (@b) {
>   print "Start another undef\n";
>   shift @b;
> }
> print "Done Undef\n";
> die;
>
> package RefWatcher;
> sub new {print "new RefWatcher\n"; return bless {junk=>'somedata'};}
> sub REFCHANGE {
>   my ($self, $references)=@_;
>   my $There_is_safe_to_reference_self=\$self;
>   undef $There_is_safe_to_reference_self; # and dereference
>   print "$self -> REFCHANGE() now $references references\n";
> }
>
> Делает :
> vany:~/src/refmonitor$perl test.pl
> new RefWatcher
> RefWatcher=HASH(0x2850c54c) -> REFCHANGE() now 5 references
> Start another undef
> RefWatcher=HASH(0x2850c54c) -> REFCHANGE() now 4 references
> Start another undef
> RefWatcher=HASH(0x2850c54c) -> REFCHANGE() now 3 references
> Start another undef
> RefWatcher=HASH(0x2850c54c) -> REFCHANGE() now 2 references
> Start another undef
> RefWatcher=HASH(0x2850c54c) -> REFCHANGE() now 1 references
> Done Undef
> Died at test.pl line 12.
>
> В результате написания этого безобразия которое "давайте в  репозитории
> этого не будет" (с) ... начальник нашего репозитория.
> Пришлось понять как работает i386, att asm, gdb и ещё куча матерных слов.
> То что мэджиком, как я надеялся, туда не попасть, и на скаляр типа объект
> SvROK говорит что не RV.
> Вообщем я не знаю как к всему этому относится, макрос на макросе и макросом
> погоняет.
> Большинство макросов не экспортированы, а нужны при хаченьи перла, пришлось
> копипастить.
>
> Вообщем всё в аттаче, раскажите, работает ли на линуксе и на amd64 - вроде
> получилось кросплатформенно, правда пока только для интела.
>
> И ещё, место ли такой упячке на цпане ?
Место. Только подчистить. Я пошел тестить на amd64.

>
>
>
>
>
> --
> Ivan B. Serezhkin
> Spamooborona, Yandex. http://so.yandex.ru/
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>



-- 
Best regards, Ruslan.


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