乙個可以更好地除錯的 Perl 模組

2021-09-20 12:23:48 字數 1230 閱讀 4215

僅用於除錯或開發調整時的 perl **塊有時會很有用。這很好,但是這樣的**塊可能會對效能產生很大的影響, 尤其是在執行時才決定是否執行它。

curtis "ovid" poe 最近編寫了乙個可以幫助解決這個問題的模組:keyword::development。該模組利用keyword::******和 perl 5.012 中引入的可插入關鍵字架構來建立了新的關鍵字:development。它使用perl_keyword_development環境變數的值來確定是否要執行一段**。

使用它不能更容易了:

use

keyword

::development

;

sub

doing_my_big_loop

}

在編譯時,development塊內的**已經被優化掉了,根本就不存在。

你看到好處了麼?在沙盒中將perl_keyword_development環境變數設定為true,在生產環境設為false,並且可以將有價值的除錯工具提交到你的**庫中,在你需要的時候隨時可用。

在缺乏高階配置管理的系統中,你也可以使用此模組來處理生產和開發或測試環境之間的設定差異:

sub

connect_to_my_database

my$db_handle

=dbi

->

connect

($dsn

,$user

,$pass

);

}

稍後對此**片段的增強使你能在其他地方,比如 yaml 或 ini 中讀取配置資訊,但我希望您能在此看到該工具。

我檢視了關鍵字keyword::development的原始碼,花了大約半小時研究,「天哪,我為什麼沒有想到這個?」安裝keyword::******後,curtis 給我們的模組就非常簡單了。這是我長期以來在自己的編碼實踐中所需要的乙個優雅解決方案。

原文發布時間為:2018-05-21

更好地領導乙個專案的訣竅

更好地領導乙個專案的訣竅 warren keuffel,自 sdmagazine,1999年9月 think think umlchina.譯 技術管理就像開車。當你做得正確時,沒有人注意,一旦某個環節出錯,問題會接踵而來。以下是我11 年來作為interviewing manager的team管理...

更好地領導乙個專案的訣竅

技術管理就像開車。當你做得正確時,沒有人注意,一旦某個環節出錯,問題會接踵而來。以下是我11年來作為interviewing manager的team管理體會,排名不分先後,你必須注意每一點。1.不要重複過去二三十年來別人犯過的錯誤 這句話來自steve mcconnell,ieee軟體編輯和軟體開...

更好地領導乙個專案的訣竅

技術管理就像開車。當你做得正確時,沒有人注意,一旦某個環節出錯,問題會接踵而來。以下是我11年來作為interviewing manager的team管理體會,排名不分先後,你必須注意每一點。1.不要重複過去二三十年來別人犯過的錯誤 這句話來自steve mcconnell,ieee軟體編輯和軟體開...