
我很驚訝地發現a2p
我的 Linux 發行版中預設安裝了該實用程式。
a2p
是一個命令列實用程序,可將awk節目來自標準輸入到一個珀爾它輸出到的程式標準輸出。
為什麼我想要轉換awk編程到一個珀爾當我有一個程式時awk安裝解釋器了嗎?
為什麼會這樣Linux發行版包含a2p
在其預設安裝中嗎?
答案1
您可能希望使用這些工具來提高腳本的效率perl
。
perl
如果您有一個更大的程式並且您想要整合awk
腳本的功能而不呼叫子進程,您可能會想要這樣做。您可以呼叫a2p
產生的程式碼並將其整合到現有的 perl 腳本中。
有一個類似的實用程序,find2perl
它採用find
命令列並產生perl
程式碼來執行相同的操作,從而避免呼叫find
子進程。
這些都是腳本的最佳化工具perl
。
答案2
為什麼預設安裝了? :這取決於您正在使用的發行版的開發人員/維護人員。
為什麼你需要
a2p
有一個 awk 習慣用法,即在字串表達式周圍放置 int() 來強制進行數字解釋,即使參數始終是整數。這在 perl 中通常是不需要的,但 a2p 無法判斷參數是否總是整數,因此將其保留。
Perl 區分數字比較和字串比較。 Awk 對這兩種情況都有一個運算符,它在運行時決定要哪一個比較。此時 A2p 並未嘗試完成 awk 模擬的完整工作。相反,它會猜測您想要哪一個。它幾乎總是正確的,但它可能被欺騙。所有此類猜測都標有註釋“#???”。你應該仔細檢查並檢查它們。您可能想要使用 perl 的 -w 開關至少運行一次,如果您在應該使用 eq 的地方使用 ==,它會警告您。
了解更多 :A2P