PerlといえばCPANと呼ばれるモジュールのアーカイバが有名ですが、そんなCPANのモジュールを必要な物だけ一括インストールするコマンドを考えました。
Rubyのgemではbundle install
などのコマンドがあり、そのプログラムで必要なモジュール類を一括でインストールできますが、CPANにはない気がしました。
Perlは結構使われているところが少なくなってきていますが、正規表現の処理がうまかったりモジュールが豊富なので、地味に何かの処理で使われたりします。そして、その際に大量のモジュールに依存してたりすると地道にインストールするのも面倒です。(それ以外の方法を知らない)
バージョンなどは見ていなく、行頭にuseがある場合のみを想定していますので、上手く動かない場合は調節してみてください。また、インストールされているCPANモジュール管理ツールがcpan2rpm
などの場合はコマンドの末尾を変えてください。
grep -e "^use[\t ]*" <対象のPerlプログラム> | awk '{print $2}' | sed -e "s/;//" | xargs -n 1 cpan install
今回ワンライナーでコマンドを書くのに初めてawkを使ったのですが意外に便利なコマンド(言語)ですね…