bless REF,CLASSNAME
bless REF

bless 指示 Perl 将 REF 所引用的项目标记为某个包中的对象。bless 的双参数版本总是优先选择,除非有特定原因不使用它。

  • 将引用的项目祝福到特定包中(推荐形式)

    bless $ref, $package;

    双参数形式将对象添加到作为第二个参数指定的包中。

  • 将引用的项目祝福到 main 包中

    bless $ref, "";

    如果第二个参数为空字符串,bless 将对象添加到 main 包中。

  • 将引用的项目祝福到当前包中(不可继承)

    bless $ref;

    如果 bless 不带第二个参数使用,则对象将在当前包中创建。如果派生类可能继承执行 bless 的方法,则应始终提供第二个参数。由于它可能是错误的来源,因此不鼓励使用单参数 bless

有关对象祝福(以及祝福)的更多信息,请参阅 perlobj

bless 返回其第一个参数,即提供的引用,作为函数的值;由于 bless 通常是构造函数中执行的最后一步,这意味着对对象的引用将作为构造函数的值返回,并允许调用者立即在方法调用中使用此返回的对象。

CLASSNAME 应该始终是混合大小写名称,因为全大写和全小写名称分别仅用于 Perl 内置类型和pragma。避免创建全大写或全小写包名称,以防止混淆。

还要避免将东西 <Cbless> 到类名 0 中;这将导致(错误地)检查 ref 结果以查看引用是否被 bless 的代码失败,因为 "0",一个假值,将被返回。

有关更多详细信息,请参阅 "perlmod 中的 Perl 模块"