ARGV::JSON というモジュールをリリースいたしました。Perl では <>
という特殊な演算子で、プログラム引数として与えられたファイルやら標準入力やらをよしなに読み込むことができます(デフォルトだと行ごと)が、この ARGV::JSON を use しておくと、<>
から 1 行読み込む代わりに、パースされた JSON データが返ってくるようになります。
実例を見ると明らかでしょう:
% curl -s https://api.github.com/users/motemen | perl -MARGV::JSON -E 'say <>->{blog}' http://motemen.github.io/
perl
のワンライナーで便利な -n
や -p
といったオプションも <>
を利用しているので、$_
を使った形のコードにすることもできます:
% curl -s https://api.github.com/users/motemen | perl -MARGV::JSON -nE 'say $_->{blog}' http://motemen.github.io/
ちなみに複数の JSON が与えられた場合はそれを順番に読んでいくようになってます。どうぞご利用ください。