相关疑难解决方法(0)

在 Perl 中,您可以在没有“AUTOLOAD”的情况下子类化并挂钩所有父类函数吗?

我正在编写一个封装父类的多个对象的子类,这样我就可以像向量一样调用函数,如下所示:

package OriginalClass;

sub new { return bless {bar => 123}, 'OriginalClass' }

sub foo { return shift->{bar}; }
1;


package NewClass;
use parent OriginalClass;

# Return a blessed arrayref of "OriginalClass" objects.
# new() would be called NewClass->new(OriginalClass->new(), ...)
sub new { 
  my $class = shift;

  return bless \@_, 'NewClass';
}

# Vectorized foo(), returns a list of SUPER::foo() results:
sub foo
{
  my $self = shift;
  my @ret;

  push @ret, $_->SUPER::foo() foreach @$self;

  return @ret;
}

1;
Run Code Online (Sandbox Code Playgroud)

我不想 …

perl module subclass vectorization

1
推荐指数
1
解决办法
108
查看次数

标签 统计

module ×1

perl ×1

subclass ×1

vectorization ×1