您的位置:首页 > 其它

perl 创建包

2016-03-22 09:24 501 查看
<pre name="code" class="python"><pre name="code" class="python">uat-app01:/root/test# cat x1.pm
package x1;
use Data::Dumper;
sub new {
my $self ={};
my $invocant = shift;
my $class = ref($invocant) || $invocant;
my ($name,$age,$starting_position,$monthly_salary)=@_;
my $self = {
"name" =>$name,
"age" =>$age
};
print "\$class is $class\n";
print "--------------------\n";
print $self->{name};
print "\n";
print "--------------------\n";

bless($self, $class); # 给予对象性质
return $self;
};

sub sum_var {
my ($self,
$var1,              # Name or IP number of host to ping
$var2,           # Seconds after which ping times out
) = @_;
my $var3= $var1 + $var2;
return $var3;
}
1;

uat-app01:/root/test# cat x1.pl
unshift(@INC,"/root/test");
require x1;
$ed=x1->new('lily','29')
;
print $ed->sum_var(99,5);
print "\n";
print $ed->{name};
print "\n";

uat-app01:/root/test# perl x1.pl
$class is x1
--------------------
lily
--------------------
104
lily
当Perl 看到$ed->sum_var(99,5);
时,它会决定$ed属于哪个类(也就是在其中执行bless的)

在这里,它是x1.
Perl于是就会如下所示调用这个函数

x1::sum_var($ed) 换句话说,箭头左边的对象只是作为相应子程序的第一个参数。

uat-app01:/root/test# cat x1.pl
unshift(@INC,"/root/test");
require x1;
$ed=x1->new('lily','29');
print x1::sum_var($ed,90,66);
print "\n";

uat-app01:/root/test# perl x1.pl
$class is x1
--------------------
lily
--------------------
156







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: