博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类和对象
阅读量:4050 次
发布时间:2019-05-25

本文共 1113 字,大约阅读时间需要 3 分钟。

-- Start

Perl 中的类和模块非常相似,都是用包来实现,下面的例子我们定义了一个 Date.pm 类。

#!/usr/bin/perl# 指定包名,类名和包名相同package Date;#------------------------------------------------------- 构造函数# 构造函数的名字可以是任意的名字,通常使用 new# 构造函数的第一个参数是类名sub new {	my $class = shift(@_); # 得到类名,类名是第一个参数	my (undef,undef,undef,$d,$m,$y) = localtime(time);	# 构造一个 hash 的引用, 用来存储 年,月,日	my $this = {};	$this->{"year"} = sprintf("%04d", $y + 1900);	$this->{"month"} = sprintf("%02d", $m + 1);	$this->{"day"} = sprintf("%02d", $d);	# 将引用($this)和类($class)关联起来,关联起来后,引用($this)代表该类的一个对象	bless $this, $class;	# 返回构造好的对象	return $this;}#------------------------------------------------------- 方法sub getDate {	my $this = shift(@_); # 方法的第一个参数是对象的引用	return $this->{"year"}."-".$this->{"month"}."-".$this->{"day"};}# 必须返回一个布尔型的真值,否则 require 时会报错return 1;

下面的例子演示了如果使用上面定义的 Date 类。

#!/usr/bin/perl# 使用类use Date;# 构造一个Date实例my $date = Date->new();# 访问 Date 类中的域my $year = $date->{"year"};print "This year is $year\n";# 访问 Date 类中的函数my $today = $date->getDate();print "Today is $today\n";

 

-- 更多参见:

-- 声 明:转载请注明出处

-- Last Updated on 2012-07-08
-- Written by ShangBo on 2012-07-08
-- End

你可能感兴趣的文章
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>
iOS 扫一扫功能开发
查看>>
iOS app之间的跳转以及传参数
查看>>
iOS __block和__weak的区别
查看>>
Android(三)数据存储之XML解析技术
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>
Brackets安装及常用插件安装
查看>>
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>