
こんにちは、NDです。
EclipseでPerlの開発する際に、強力なサポートをしてくれるのがEPIC(Eclipse Perl Integration)プラグインです。
なかでも「Source Formatter」は、ソースコードを美しく整形してくれるので、一日に何度も使用する機能ではないでしょうか。
チームで開発している場合はフォーマットのオプションを統一し、コミット前の整形をルールとしてるところも多いと思います。
今回はそんなフォーマットのオプションについてのTipsです。
改行コードは何にしていますか?
- ソースコードの改行コードは何ですか?
- やはり「LF」ですか?
- 「LF」にしたいがために、プロジェクトの設定で改行コードを「Unix」としていませんか?
- 改行コードを「Unix」に指定したのに、フォーマットをすると「CR+LF」になってしまうことはありませんか?

ここでハマっている方には、オトクな情報です!
「Source Formatter」の機能はEclipseにもありますが、PerlファイルのフォーマットはEPICプラグインの設定に引きずられます。
そのため、Eclipseの設定で改行コードを指定してもムダです…
EPICプラグイン「Source Formatter」の設定を変えてみましょう!
Preferences >> Perl EPIC >> Editor >> Source Formatter
「Additional PerlTidy Options」に「-ole=unix」を入れます。

これでフォーマットをかけてみてください。
Unixの改行コード「LF」に統一されたかと思います。
Windowsユーザ必見!
おそらくWindowsユーザはフォーマットをかけると、下記のエラーメッセージが出ると思います。

perltidy returned unexpected output via stderr, possibly due to invalid options in Source Formatter preferences:
ignoring -ole; only works under unix
Use formatter’s output anyway?
これはフォーマットをかける際に「Perl::Tidy」というモジュールがお仕事をしてくれていますが、このモジュールが入っていない(もしくは最新ではない)というエラーメッセージです。
ActivePerlを使っている方は、PPM(Perl Package Manager)で「Perl::Tidy」を入れてみましょう。
導入後は問題なくフォーマットがかけられるかと思います。
ソースコードを美しくしてレビューに臨みましょう!
ではでは。