Perl
CPAN モジュールの DateTime::Format::Strptime は DateTime と同じ Dave Rolsky さんが開発しているもので、日付時刻を含む文字列のパースによく使われているのではないかと思います。 このモジュールの挙動が v1.58 から変わっていました。 #!perl use fea…
既に2回このブログで紹介している memcached-cli について、昨日開催された第8回 Gotanda.pm で LT してきました。 資料はこちらです。今回は Speaker Deck に上げてみました。 Speaker Deck だとスライド中のリンクが無効になる(?)ようなので、いくつか貼…
3/24 の記事で、最近作った memcached-cli というツールの紹介をしました。 keyamb.hatenablog.com 別に困ってはいないのですが、もっと便利にしたので、Changes から抜粋して追加機能を紹介しておきます。 昨日か一昨日に手元に入れて試してみた、という方…
Redis*1 には redis-cli というツールがあって、Redis サーバに接続して対話的にコマンドを発行して、結果を得ることができます。 Memcached*2 の場合、いい感じに使えるツールがなくて*3、必要なときはいつも TELNET でつないでコマンドを実行していました…
こんにちは、@key_amb です。ご無沙汰しています。 最近ブログの更新が遅れてまして、なんとなく申し訳ない気持ちになっている今日このごろです。 なんと、2ヶ月も更新してなかったんですね。*1 さて、前回の Gotanda.pm #5 では、テーマ(「高速化」でした)…
7/10(金) 吉祥寺.pm #4 で発表をしてきました。 お題が「PerlとPerl以外」ということだったので、PerlとPerl以外のWebアプリケーションのサーバサイド運用について話そうかなーと思い、発表枠で申し込みました。 …で、下のスライドで話をしました。 PerlとPe…
今年の YAPC::Asia Tokyo は 8月20〜22日に予定されています。 今年は最後の YAPC::Asia Tokyo ということで、トーク応募にも気合いの入ったエントリーが多いような気がします。 〆切は明日までとのことですが、これを書いている 6/14 現時点で 128個 のトー…
6/2 に開催された Shibuya Perl Mongers テクニカルトーク #17 に参加してきました。 自分は初参加だったのですが、なんと前回開催から4年ぶりの開催とのこと。 「もうみんな Perl なんて書いてませんよね」というアイロニーな雰囲気が漂いつつも、「やっぱ…
Pod::Simple::HTML の POD に書いてある通りですが、Pod::Simple::HTML を継承したクラスを作って、生成する HTML をカスタマイズすることができます。 例えば、do_pod_link メソッドをオーバーライドすることで、L<...> で記述するリンクタグの挙動を変更で…
Module::Build を使うとプロジェクトのドキュメント生成をビルドのタスクの一部として、かんたんなコマンドで実行できます。 ./Build docs # blib/ 以下にドキュメント生成 ./Build html # blib/ 以下にHTML生成 Module::Build でプロジェクトの対象ファイル…
ShipIt は Perl プロダクトのビルド、テスト、リリースを自動化してくれるツールで、CPAN へのアップロードもできます。 今回は以下の作業を半自動化するために、ShipIt を利用しました。 モジュール群の VERSION インクリメント ChangeLog の更新 リリース…
EUC-JP => UTF-8 な変換をしたくて、Encode.pm を使ったら化けたのだけど、Unicode::Japanese にしたら上手く行った。 use Unicode::Japanese; print Unicode::Japanese->new($content, 'euc-jp')->get; 参考 Unicode-Japanese-0.49 - Convert encoding of j…
mysql とか memcached とか。 Harriet というのを使うといいらしい。 Harriet ー テストのときつかうにデーモンの取扱を簡単にするためのフレームワーク - blog.64p.org
職場でとある Perl スクリプトを改修する機会があった。 元々ぺら一枚のスクリプトだったのだが、これを機に App::Hoge::CLI (仮称) のようなモジュールを作ろうとした。 すると、pull-request の時に「使い回しのできないものをモジュールにしないほうがい…
現在の結論 Module::Load::load でよさそう。 参考 Perl のモジュールローダー選定委員会 - blog.64p.org [技術継承の現場] useとrequireの違い - NDiS Tech http://perldoc.perl.org/Module/Load.html
半分メモです。 下の記事に色んな方法が載ってました。 モジュールのバージョンを確認するときどうやってますか? - JPerl Advent Calendar 2010 Casual Track 自分のシェル環境にもなにか入れておこうと思いました。 最初はかんたんに alias にしようかと思…
if if ブロックを途中で抜けたいときにたまに使うことがありました。 if {{ # do something last if $error; # do something }} {{ にしているのがミソで、if {} の内側の {} がブロックということです。 eval eval は last で抜けられないのですが、同様の…
Perl の標準モジュール Exporter を使った関数の Export/Import のやり方をまとめておく。 この機能を使って関数をインポートすると、"MyApp::afunc" のようにパッケージ名を指定せずとも関数を組み込み関数のように "afunc" だけで呼び出せる。 基本的な使…
See Test::UseAllModules - search.cpan.org use Test::UseAllModules; BEGIN { all_uses_ok(); }
See File::Which - search.cpan.org use File::Which qw(which); my @paths = which('perl');
Julius Plenz - Blog - Modify a Readonly scalar in Perl for testing purposes の方法で上手く行った。
ちょっと前から plenv を使っていますが、作業環境が変わったときに毎回モジュールを入れ直すのが面倒なので、cpanfile を管理することにしました。 https://github.com/key-amb/my-perlenv cpanm --installdeps オプションで、cpanfile の記述を元にモジュ…
Perlで使えるCLIフレームワークの個人的調査メモ。 インフラ運用などをやっていると、CLIをさくっと作りたいニーズが出てくる。 毎回一から書くより、既存のフレームワークに乗っかった方が楽なこともあるだろう。 というわけで、ちょっと調べてみた。 CPAN …
https://github.com/key-amb/perl-Text-LTSV-Liner を CPAN に上げたときの作業メモ。 PAUSE ID 申請 CPAN にモジュールを上げるために必要。 社内でCPAN Authorになろうハッカソンを開催しました!! - 僕の車輪の再発明 を参考にした。 リクエストを送ると…
perldoc コマンド $ perldoc -l File::Path Class::Inspector を使う perl のコード上で調べたい場合はこちらを使うといい。 use Class::Inspector; my $module = 'File::Path'; print Class::Inspector->resolved_filename($module), "\n"; 参考 モジュール…
http://perldoc.perl.org/perlpod.html によくまとまっている。
FATAL, ERROR, WARN, INFO, DEBUG, TRACE の6つがある。 $logger オブジェクトを使うとそれぞれメソッドで書ける。 $logger->trace("..."); # Log a trace message $logger->debug("..."); # Log a debug message $logger->info("..."); # Log a info messag…
ちょっと固まったプロセスに strace してたら、「それgdbperl使った方がいいっすよ」って後輩に言われたので使ってみた。 gdbperlは https://github.com/ahiguti/gdbperl ここにある。 使い方は https://www.slideshare.net/akirahiguchi/gdbperl にある。 |…
前掲のText::LTSV::Linerでも、そもそもText::LTSVの中で使われているYAML::Tiny::Colorでも使われている Term::ANSIColor というモジュールを使うと、ターミナルに出力するテキストに色を付けることができる。http://perldoc.perl.org/Term/ANSIColor.html …
LTSVのPerlのパーサをCPANで探していたら、Text::LTSVとApp::YGが見つかったけど、どちらも次のような感じで複数行に分けて表示してくれるものっぽかった。 $ cat sample.ltsv | ltsview -k id,name --- id:001 name:taro --- id:002 name:jiro --- :ログと…