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 內建類型和實用程式。避免建立全大寫或全小寫的套件名稱,以避免混淆。

此外,避免將 <Cbless> 的內容放入類別名稱 0;這將導致程式碼(錯誤地)檢查 ref 的結果,以查看參考是否為 bless,因為會回傳「0」,一個假值。

請參閱 perlmod 中的 "Perl 模組" 以取得更多詳細資料。