Perl 构造函数和析构函数
构造函数 **在Perl子程序中的构造函数会返回一个对象,它是该类的一个实例。在Perl中,惯例是将构造函数命名为 **”new “。与其他许多 OOPs 不同,Perl没有为构造一个对象提供任何特殊的语法。它使用与该类明确相关的数据结构(哈希、数组、标量)。
构造函数在哈希引用和类名(包的名称)上使用 “祝福 “函数。
让我们设计一些代码来进行更好的解释:
注意: 由于使用了包,下面的代码将不能在Online IDE上运行。下面的代码是一个Perl类或模块文件。将下面的文件保存为(*.pm
)扩展名。
当构造函数方法被调用时,包名’Area’被存储在默认数组 “@_ “中。关键字 “shift “用于从 “@_ “中获取包的名称,并将其传递给 “bless “函数。
Note : “my “限制了一个变量的范围。
在Perl中,属性是以散列引用中的键、值对的形式存储的。进一步说,在代码中加入一些属性。
上面的代码( 区域 类)有两个属性: 长度 和 宽度。 为了获得对这些属性的访问,设计了另一个Perl程序来使用它们。
运行代码的步骤 。
- 将带有Package Area的程序保存在一个名为 Area.pm 的文本文件中
注意: 文件的名称应始终与包的名称相同。 -
现在,用
*.pl
的名字保存用于访问包中定义的属性的程序。这里,*可以是任何名字(在本例中是test.pl)。 -
在Perl命令行中使用
perl test. pl命令来运行保存为test.pl的代码。
输出:
传递动态属性 :
用动态属性更新现有文件。
Areas.pm
test.pl
现在,Params
被传递给包Area,以计算正方形的面积。
当任何子程序被调用时,参数都包含在默认的数组变量 @_ 中。
注意: 现在按照上面解释的方式运行代码。
输出:
解构器
当一个对象的所有引用超出范围时,Perl会自动调用析构器方法。如果该类创建的线程或临时文件在对象被销毁时需要清理,那么析构器方法就有用处了。Perl包含了一个特殊的方法名,即 ‘DESTROY ‘,用于销毁器,必须在销毁器声明时使用。
语法
输出将有点像这样: