為什麼預設安裝 a2p(Awk 到 Perl 轉換器)?為什麼我想將 Awk 轉換為 Perl?

為什麼預設安裝 a2p(Awk 到 Perl 轉換器)?為什麼我想將 Awk 轉換為 Perl?

我很驚訝地發現a2p我的 Linux 發行版中預設安裝了該實用程式。

a2p是一個命令列實用程序,可將awk節目來自標準輸入到一個珀爾它輸出到的程式標準輸出

為什麼我想要轉換awk編程到一個珀爾當我有一個程式時awk安裝解釋器了嗎?

為什麼會這樣Linux發行版包含a2p在其預設安裝中嗎?

答案1

您可能希望使用這些工具來提高腳本的效率perl

perl如果您有一個更大的程式並且您想要整合awk腳本的功能而不呼叫子進程,您可能會想要這樣做。您可以呼叫a2p產生的程式碼並將其整合到現有的 perl 腳本中。

有一個類似的實用程序,find2perl它採用find命令列並產生perl程式碼來執行相同的操作,從而避免呼叫find子進程。

這些都是腳本的最佳化工具perl

答案2

  1. 為什麼預設安裝了? :這取決於您正在使用的發行版的開發人員/維護人員。

  2. 為什麼你需要a2p

有一個 awk 習慣用法,即在字串表達式周圍放置 int() 來強制進行數字解釋,即使參數始終是整數。這在 perl 中通常是不需要的,但 a2p 無法判斷參數是否總是整數,因此將其保留。

Perl 區分數字比較和字串比較。 Awk 對這兩種情況都有一個運算符,它在運行時決定要哪一個比較。此時 A2p 並未嘗試完成 awk 模擬的完整工作。相反,它會猜測您想要哪一個。它幾乎總是正確的,但它可能被欺騙。所有此類猜測都標有註釋“#???”。你應該仔細檢查並檢查它們。您可能想要使用 perl 的 -w 開關至少運行一次,如果您在應該使用 eq 的地方使用 ==,它會警告您。

了解更多 :A2P

相關內容