目錄

名稱

Text::Tabs - 擴充和取消擴充 tab,就像 unix expand(1) 和 unexpand(1)

語法

use Text::Tabs;

$tabstop = 4;  # default = 8
@lines_without_tabs = expand(@lines_with_tabs);
@lines_with_tabs = unexpand(@lines_without_tabs);

說明

Text::Tabs 執行 unix 工具程式 expand(1) 和 unexpand(1) 的大部分功能。給定一行有 tab 的內容,expand 會以適當數量的空白取代那些 tab。給定一行有或沒有 tab 的內容,unexpand 會在可以節省位元組的情況下加入 tab,就像 unexpand -a 指令一樣。

與舊的 unix 工具程式不同,這個模組會正確計算每行中可能出現的任何 Unicode 結合字元(例如變音符號),用於擴充和取消擴充。這些是覆寫字元,不會增加邏輯位置。請確定已啟用適當的 Unicode 設定。

匯出

匯出下列項目

展開
取消展開
$tabstop

$tabstop 變數控制每個定位標記之間的欄位位置數目。預設為 8。

請注意 local($tabstop) 無法執行正確的動作,如果您想使用 local 來覆寫 $tabstop,您需要使用 local($Text::Tabs::tabstop)

範例

#!perl
# unexpand -a
use Text::Tabs;

while (<>) {
  print unexpand $_;
}

取代 shell 的 expand 指令,使用

perl -MText::Tabs -n -e 'print expand $_'

取代 shell 的 unexpand -a 指令,使用

perl -MText::Tabs -n -e 'print unexpand $_'

錯誤

Text::Tabs 僅處理定位標記 ("\t") 和組合字元 (/\pM/)。它不會向後計算退格鍵 ("\t"),省略其他非列印控制字元 (/\pC/),或處理任何其他零寬、半寬和全寬字元。

授權

版權所有 (C) 1996-2002,2005,2006 David Muir Sharnoff。版權所有 (C) 2005 Aristotle Pagaltzis 版權所有 (C) 2012-2013 Google, Inc。此模組可以修改、使用、複製和重新散布,風險自負。儘管前述授權允許,請不要公開重新散布此程式碼的修改版本,除非它通過未修改的 Text::Tabs 測試套件。