經歷了幾個鏈接後,我才知道Perl會編譯並創建一箇中間字節代碼,然後解釋該字節代碼。 我的問題是該字節代碼駐留在哪裏?Perl在哪裏存儲其中間字節代碼?
和java,c一樣,我們可以在編譯後看到機器可執行的目標代碼。雖然Perl不會創建機器可執行代碼,但是應該有一些 位置用於臨時存儲字節代碼。
經歷了幾個鏈接後,我才知道Perl會編譯並創建一箇中間字節代碼,然後解釋該字節代碼。 我的問題是該字節代碼駐留在哪裏?Perl在哪裏存儲其中間字節代碼?
和java,c一樣,我們可以在編譯後看到機器可執行的目標代碼。雖然Perl不會創建機器可執行代碼,但是應該有一些 位置用於臨時存儲字節代碼。
編譯結果作爲操作碼樹或簡稱選項存儲在內存中。這個結構正在perl的運行時間裏執行你的程序。
您可能會發現"Compiled Code" section of perlguts有趣。它解釋了構建執行perl optree的許多細節。
也可以使用其中包含的B::C
分佈和ByteLoader
模塊將該選項寫入磁盤並將其重新加載到另一個perl進程中。但是,這種技術在許多程序中並不能很好地工作,所以不建議以任何方式。
你碰巧知道如果解開命名空間丟棄操作代碼? – 2017-10-13 21:14:26