スクリプトにプログレスバーが欲しいというので、Term::ProgressBar で実装しておく。 しかし Windows + ActivePerl + コマンド プロンプトでうまく表示されるのかどうかは知らぬ。
Windows だと Term::ReadeKey::GetTerminalSize でサイズが取得できなくて警告が出るな(で、デフォルト値の 60桁が設定される)。 今日は時間の余裕がないので、$^O が MSWin32 なら Term::ProgressBar を new する前に、
Term::ProgressBar->__force_term(72);
を実行するようにしてしのぐ。 非公開なクラスメソッドなのでできれば呼びたくない。
Term::ProgressBar を PREREQ_PM にしているパッケージを make_ppm すると、ppd に Term-ProgressBar ではなく Term-ProgressBar-2.06 が DEPENDENCY として出力される。
CPAN にある最新パッケージが Term-ProgressBar-2.06-r1 と、ちょっと変則的なバージョン番号がついているので誤認しているようだ。 PPM::Make::Util::version あたりでヒューリスティックにパッケージ名とバージョン番号を分離しているっぽい。
とりあえず出力されたPPDを手で直すか。
PPM::Make 0.74 が出た。CPAN::DistnameInfo を使うようになり、Term::ProgressBarのパッケージ名も誤認識しないようになった。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。