当前位置:  开发笔记 > 编程语言 > 正文

在perl脚本中使用$ self创建实例时出错

如何解决《在perl脚本中使用$self创建实例时出错》经验,为你挑选了1个好方法。

我尝试在perl脚本中创建一个对象.因此我有一个构造函数

new(;@)
{
     my $class = shift;
     my $self = {};
     bless $self, $class;
     $self->_init(@_);
     return $self;
}

和我的_init(;@)功能,初始化对象

my $self = shift;
if( @_ )
{
    my %extra = @_;
    @$self{keys %extra} = values %extra;
}
return;

我使用这两个功能的方式是错误的吗?我用两条线开始每隔一个子线

my $self = shift;
croak "instance method called for class" unless ref $self;

但是我每次使用它时都会得到syntax/ String found where operator expected错误.

因此我的问题是:我是否正确使用这两种功能?我一直认为我只需要$self像我一样初始化一次,并且可以为脚本的其余部分指出我想要的一切.



1> choroba..:

croak默认情况下未加载.你必须use Carp在包装中才能使用它(见鲤鱼).

顺便说一下,方法调用会忽略原型.不要使用它们.也不要将它们用于功能.

您可以使用类似Class :: Declare :: Attributes的东西来保存一些输入:

sub new :class {
    ...
}

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有