Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発
  1. Perl
  2. モジュール
  3. here

perltidy - Perlのソースコードを整形

perltidyはPerlのソースコードを成形するためのツールです。読みやすいPerlのソースコードに整形してくれます。

perltidy ソースファイル

perltidyをディレクトリに含まれる複数のファイルに実行する手順

perltidyを使ってディレクトリに含まれるすべてのファイルを再帰的に処理する手順を書いておきます。現時点では、perltidy本体には、ディレクトリを再帰的に処理する方法が実装されていないようです。

まずはバックアップを取っておく

最初にディレクトリのバックアップをとっておきましょう。間違っても戻すためです。ディレクトリごと違うところにバックアップしておいてください。

目的のファイルを探す

まず目的のファイルをfind2perlコマンドを使って探します。.pmで終わるファイルと.plで終わるファイルが整形の対象になると思います。対象のディレクトリ名はdirです。

find2perl perl_lib/ -name "*.p[ml]" | perl

対象のファイルが正しい場合は次の手順に進みましょう。

perltidyの実行

さて出力されたファイルに対してperltidyを実行しましょう。

find2perl perl_lib/ -name "*.p[ml]" | perl | perl -ne "system('perltidy', $_)"

拡張子が.tdyとなっているファイルができています。これが整形後のソースファイルです。出力が正しいかどうかを確認しましょう。

拡張子が.tdyのファイルで元のファイルを上書き

拡張子が.tdyのファイルで元のファイルを上書きします。これで完了です。

find2perl perl_lib/ -name "*.p[ml]" | perl | perl -MFile::Copy -ne "chomp $_;move($_ . '.tdy', $_)"

ディレクトリの中の複数のファイルを簡単に整形する機能がperltidyにほしいですね。

(参考)File::Copy