我有一个Perl控制器类,我在其中:
sub func1 {
my $f1 = Model::myModel->new();
my $param = "test";
$f1->func2($param);
}
Run Code Online (Sandbox Code Playgroud)
型号类:
sub new {
my ($class, %arg) = @_;
my $self = bless {}, $class;
return $self;
}
sub func2 {
my ($self, $param) = shift(@_);
warn $param;
}
Run Code Online (Sandbox Code Playgroud)
$param是空白的.我在做什么错?
shift只移动第一个值@_. perldoc -f shift会告诉你更多有关班次如何运作的信息.
你要:
my( $self, $param ) = @_;
Run Code Online (Sandbox Code Playgroud)
你把它弄好了new().不确定发生了什么;)
实际上,仅供参考,你new()会发出警告:
Odd number of elements in hash assignment
Run Code Online (Sandbox Code Playgroud)
如果你称之为$package->new( 'a' ); 你可能想要捕获它,例如:
use Carp qw( croak confess );
sub new {
my $class = shift;
confess "$class requires an even number of args" if( @_ & 1 );
my %args = @_;
# ...
}
Run Code Online (Sandbox Code Playgroud)
或使用您使用的任何异常捕获机制.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |