乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
perl 2.2 面向对象的写法
2016-05-26 14:20:54
51
0
0
admin
Perl中的一个类就是一个包 #父类 ```perl [leo@localhost oop]$ cat dir/case.pm #!/usr/bin/perl package case; #在Perl 里 , 包就是类 要与文件名相同 sub new{ #创建对象必须有new 方法 shift @_; #类里的所有子方法 的第一个参数都是这个类的引用 my $self = { "id" => shift,"desc" => shift,"status" => "open"}; bless $self; # 把数据结构变成对象 return $self; } sub set_desc{ my $self = shift; $self->{"desc"} = shift; return 0; } sub get_desc{ my $self = shift; my $tmp = $self->{"desc"}; return $tmp; } 1; #必须有 ``` #子类 ```perl [leo@localhost oop]$ cat dir/set_case.pm #!/usr/bin/perl package set_case; require case; @ISA = qw(case); # 这个数组用于继承类,Perl在当前包找不到方法,会自动在这个数组中的包去寻找 sub new{ shift @_; my $self = { "id" => shift,"desc" => shift,"status" => "open","set" => "yes"}; bless $self; # 把数据结构变成对象 return $self; } sub sub_get_status{ my $self = shift; my $tmp = $self->{"status"}; return $tmp; } sub sub_set_status{ my $self = shift; $self->{"status"} = shift; return 0; } 1; ``` #调用对象 ```perl [leo@localhost oop]$ cat extends_opp.pl #!/usr/bin/perl use warnings; use strict; use lib "./dir"; require set_case; my $ticket = new set_case("qq","ww");# 调用对象,还可以用set_case::new() 或 set_case->new() print $ticket->sub_get_status."\n"; $ticket->sub_set_status("ee"); print $ticket->sub_get_status."\n"; print $ticket->get_desc."\n"; $ticket->set_desc("ll"); print $ticket->get_desc."\n"; [leo@localhost oop]$ ./extends_opp.pl open ee ww ll [leo@localhost oop]$ ```
上一篇:
perl 2.1 引入其他perl脚本
下一篇:
perl 3.01 用JSON/XML 格式导入导出数据
文档导航