现在担心的是如果这个类在多线程环境下跑的话,在一个线程里取到的$AUTOLOAD可能已经被另一个线程改变了,请问有没有方法能避免这个啊?是不是只能自己写同步代码?
多谢了!
________________________________________
From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of agentzh
Sent: Sunday, May 31, 2009 2:36 PM
To: perlchina@googlegroups.com
Subject: [PerlChina] Re: 请问如何在AUTOLOAD里得到方法名?
2009/5/31 Luo, Yong <Yong.Luo@acs-inc.com>
就是这个,但是我试过好像不行,用的是perl5.10,
Really?!
$ perl -e ' package Foo; Foo->bar; sub AUTOLOAD { print $AUTOLOAD }'
Foo::bar
$ perl -v
This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
Copyright 1987-2007, Larry Wall
...
而且这是个global变量,用起来比较不方便
Really?!
$ perl -we 'use strict; package Foo; use vars qw($AUTOLOAD); Foo->bar; sub AUTOLOAD { print $AUTOLOAD }'
Foo::bar
Try more carefully and rethink ;)
Cheers,
-agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论