如何创建一个Perl类?

我正在编写Perl类以从脚本中删除冗余,因为Perl有很多方法让我不断地让课程正常进行.有没有人有一个类的最佳实践示例?

我最大的问题是如果一个模块中不应该有全局变量,你如何在一个模块中的sub()中使用变量?像Java自己> foo = 10;

基本上只是给我一个用Java或C#编写的类,甚至是C,并在Perl中写同一个.另外还要显示如何正确地执行私有,受保护和公共类变量.继承和接口对我有帮助.

解决方法

创建Perl对象的典型方式是“保佑”一个hashref.然后,对象实例可以根据自己的一组散列键存储数据.
package SampleObject;

use strict;
use warnings;

sub new {
    my ($class,%args) = @_;
    return bless { %args },$class;
}

sub sample_method {
    my ($self) = @_;
    print $self->{sample_data};
}

和用法:

my $obj = SampleObject->new( sample_data => 'hello world',more_data   => 'blah blah blah' );
$obj->sample_method();

或者,可以添加访问器/ mutator方法(参见Class :: Accessor,Class :: Accessor :: Chained等,以便轻松设置这些) – 这些使得更容易验证数据和添加封装(它不是在Perl,您必须确保您的代码不会绕过适当的访问器/ mutator,并直接访问祝福的hashref中的数据).

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...