Strawberry Perl を 5.10.0 系から 5.12.1 系に入れ替えたので再度 CPAN モジュールを使って必要な Perl モジュールをインストールしようとしたが、前のバージョンの時と同様
"Couldn't move...
と出てエラーで止まってしまった。今回は解決しておこうと調べたところ Norton Internet Security のせいらしい。ロック関係だとは思っていたが、NIS が掴んでいたか。一時的に Auto-Protect を無効にしたらすんなり通るようになった。
@bulkneets 氏からの言及経由 @mikio1978 氏によると FILE_SHARE_DELETEとかの共有フラグを立てないでオープンしてしまっているからのようだ。
やっぱり Perl スクリプトは perltidy をかけておかないと気持ち悪いよね。 Emacs からは perltidy を呼べるように設定済み。
基本 Perl スクリプトを書く時は Emacs なのだが、Windows 上でさくっと書く時もある。最近は Windows 上のテキストエディタは Notepad++ を使っているので、同様に Notepad++ からも呼べるように設定しておこう。
以下 Notepad++ v5.8.7 (UNICODE)、[全般設定] で言語に日本語を指定してある状態での設定手順。Perl は Strawberry Perl で cpanm が入った状態。
以下のコマンドで perltidy をインストールする。
cpanm Perl::Tidy
Notepad++ v5.8.7 に 外部コマンドを実行する NppExec プラグインが入っていなかったのでインストール。
NppExec_041_dll_Unicode.zip をダウンロードしてきて展開し c:\Program Files\Notepad++\plugins に NppExec.dll をコピーする。
Notepad++ を起動し以下の設定を行う。途中 Notepad を再起動するように指定されたら指示に従って起動しなおす。
c:\strawberry\perl\bin\wperl.exe -x -S perltidy --quiet --preserve-line-endings --backup-and-modify-in-place "$(FULL_CURRENT_PATH)"
これで [マクロ]-[perltidy] と指定できるようになる。
お気に入りの .perltidyrc (perltidy.ini でも OK)を
perltidy -dpro
で表示されるディレクトリのどこかに置くか、置き場所を PERLTIDY 環境変数に設定しておくか、コマンドラインオプションに -pro=filename という形で指定しておく。
適当に Perl スクリプトファイルを開いて [マクロ]-[perltidy] を実行。ウィンドウの下部に Console 出力が表示される。 処理が終わったら [ファイル]-[開き直す]をすると整形された Perl スクリプトが表示される。
上記の手順を Notepad++ マクロ化しようとしたんだけれど、これは失敗。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。