如果我有一个简单的绑定标量类,每次读取时都会递增,我可以这样做:
package Counter;
use strict;
use warnings;
sub TIESCALAR {
my $class = shift;
my $value = 0;
bless \$value, $class;
return \$value;
}
sub FETCH {
my $self = shift;
my $value = $$self;
$$self++;
return $value;
}
sub STORE {
my $self = shift;
$$self = shift;
}
1;
但是,要创建一个计数器变量,我必须使用tie
. 我可以创建一个计数器并将其导出。但我真正想做的是让它看起来OO。看来我可以创建这样的new
方法:
sub new {
my $class = shift;
my $counter;
tie $counter, $class;
return $counter;
}
然后在我的主脚本中通过执行以下操作获得两个计数器:
my $counter1 = Counter->new();
my $counter2 = Counter->new();
我假设这不起作用,因为领带无法在副本中保留下来(我在某处的文档中读到),难道根本没有办法做到这一点吗?
注意。我知道这只是风格问题,但它看起来更正确。