Masteries

技術的なことや仕事に関することを書いていきます.

Perlで雑なスクリプトを書く時の個人的な三種の神器

日常の中で複雑な作業をしたい時, Perlで雑なスクリプトを書いて実現することがあります. そういった時によく使うCPANモジュール達を紹介しようと思います.

Path::Tiny

metacpan.org

ファイルの読み書きはもちろん, ファイルやディレクトリの存在確認, ディレクトリからのファイルの走査, 一時的なファイル/ディレクトリを用意... などなど, ファイルやディレクトリ操作に関するあらゆることがこのモジュール1つで実現できて便利です.

Data::Printer (DDP)

metacpan.org

便利で見やすいData::Dumper. 雑なスクリプトを作る時は, とにかくData::Printerで途中結果を表示しながら試行錯誤しています.

papix.hatenablog.com

過去にこういう紹介記事を書いていました.

papix.hatenablog.com

或いはこういう活用事例も書いていましたね.

Capture::Tiny

metacpan.org

systemで適当なコマンドを実行して, その標準出力や標準出力を元にして更に処理をする... という時に便利なコマンドです.

use strict;
use warnings;

use Capture::Tiny qw/ capture /;

my ($stdout, $stderr) = capture {
    system('ls');
};

print $stdout;

こういう感じにしてあげれば, captureで囲った部分のコード(この場合, systemlsを実行している)の標準出力が$stdoutに, 標準エラー出力が$stderrに格納されます.

まとめ

何かしらの作業をまとめてスクリプトにするとき, だいたいシェルスクリプトで書こうとするものの, 途中で分岐が増えてきて「アバーッ!!!」となり, Perlで書き直す... という事が多いです. というわけで, 今回はそういう時によく使うモジュール達を紹介しました.

「自分はこれ使うことが多い」, 「これも便利!」といった情報, お待ちしております.