The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

UTF-8 の BOM (Byte Order Mark) があるかどうかを判定する。オプションにより書いたり消したりする。

  $0 ファイル名 [ファイル名] [ファイル名] ..

  多数のファイルを処理するには、find . | xargs -n 100 $0  のように指定すると良いだろう。
  

 オプション :

  -A     : 指定した各ファイルに UTF-8のBOM を追加する。
  -D     : 指定した各ファイルに UTF-8のBOM を除去する。
  -B     : 指定したファイル名Bに対しB.bakをBへ。BがあればB.bakへ。-i で.bakの部分は変更可能。
  -F     : -i でバックアップされたと思われる様な、特定の拡張子を持っていても、そのファイルに処理をする。(forced)
  -!     : 元のファイルを残さない。

  -b     : バイトサイズを出力する。(現状 -Aまたは-Dが指定された場合は無効。)
  -i str : 元のファイルに対して,指定文字列の拡張子を付属して残す。未指定なら、".bak"。
  -q     : どのファイルを処理した,と言うような情報の出力を抑制する。

 開発上のメモ : 
    * 0バイトのファイルに対する処理を,適切に行うようにしたい。
    * ファイルに対して処理するので無くて,標準入力に対する処理を加えたい。-p または -1で。
    * 出力する空白文字の個数の指定をもっとスマートにしたい。ファイル名に対する囲み文字を統一したい。