将参数传递给 Perl class 子例程
Passing argument to a Perl class subroutin
我的代码很简单。我在名为 smconfig 的包下有一个子程序 getModemHost。
sub getModemHost {
print 'Modem-'.$_[0].'.Host';
}
当我用参数调用这个子例程时,我看到了奇怪的值,而不是我传递的值。下面一行打印 Modem-smconfig=HASH(0x9433968).Host。我期待调制解调器-1.Host
$smconfig->getModemHost(1)
方法的第一个参数是调用者,即对象。使用 $_[1]
作为真正的第一个参数。或者,更具可读性:
sub getModemHost {
my ($self, $modem_number) = @_;
print "Modem-$modem_number.Host";
}
详情见perlobj。
或者一些很常见的东西:
sub myObjectMethod {
my $self = shift;
...
# do here what you like to do with $_[0]
# for we have removed the first parameter
...
};
我的代码很简单。我在名为 smconfig 的包下有一个子程序 getModemHost。
sub getModemHost {
print 'Modem-'.$_[0].'.Host';
}
当我用参数调用这个子例程时,我看到了奇怪的值,而不是我传递的值。下面一行打印 Modem-smconfig=HASH(0x9433968).Host。我期待调制解调器-1.Host
$smconfig->getModemHost(1)
方法的第一个参数是调用者,即对象。使用 $_[1]
作为真正的第一个参数。或者,更具可读性:
sub getModemHost {
my ($self, $modem_number) = @_;
print "Modem-$modem_number.Host";
}
详情见perlobj。
或者一些很常见的东西:
sub myObjectMethod {
my $self = shift;
...
# do here what you like to do with $_[0]
# for we have removed the first parameter
...
};