【发布时间】:2014-07-11 01:02:36
【问题描述】:
我想知道是否可以从 Perl 程序中的子例程返回对象句柄。
我将使用使用MAIL::IMAPClient的程序中的特定示例
创建客户端对象句柄
my $client = Mail::IMAPClient->new(
Socket => $socket,
User => $user,
Password => $pass,
)
or die "new(): $@";
我想改为从子例程创建此对象句柄
my $client = &create_client_object;
sub create_client_object {
my $client = Mail::IMAPClient->new(
Socket => $socket,
User => $user,
Password => $pass,
)
or die "new(): $@";
return $client;
}
如果可能,这样做的正确方法是什么?
【问题讨论】:
-
是的,这本质上是 Java 静态工厂方法的 Perl 等价物。注意,调用子程序时不要使用
&。而是使用my $client = create_client_object();
标签: perl oop subroutine