父母和@ISA做同样的工作,父母和@ISA的使用是相应的.
package Baz;
use parent qw(Foo Bar);
Run Code Online (Sandbox Code Playgroud)
要么
package Baz;
BEGIN
{
require Foo;
require Bar;
push @ISA, qw(Foo Bar);
}
Run Code Online (Sandbox Code Playgroud)
use parent这只是一个简洁的方法,require可以@ISA在一个语句中执行并将包名称推送到其中.它发生在编译时,而不是our @ISA = qw/ Foo Bar /在运行时完成的简单,并且意味着您必须只编写一次包名称,这可能会减少错误.如果包试图从同名的包继承,它也会引发警告,这将是无用的并且可能导致无限的继承循环.
简而言之,use parent是一种更简洁,更简单的方法来确保一切正常.