PerlからPHPにJSONを使ってデータを引き渡す

ハッシュやオブジェクトなどの複雑なデータ構造のものを引き渡すのにJSONを使うのが最適です。

PerlJSONモジュールをインストール

cpan
cpan> install JSON

PHP4にJSONモジュールをインストール(PHP5にはディフォルトで入ってる)

PEAR版とPecl版があるが今回はPeclを使用。

cd /usr/local/src
wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.1.tar.bz2
tar -jxf php-json-ext-1.2.1.tar.bz2
cd /usr/local/src/php-json-ext-1.2.1/
./configure
make
cp /usr/local/src/php-json-ext-1.2.1/modules/json.so /usr/lib/php/extensions/
vim /etc/php.ini (Add "extension=json.so" under "Dynamic Extension")
service httpd restart

PerlJSONエンコード

use JSON;
my $hash = {
       name => "sodomojo",
       age => 26,
       job => "programmer",
};

$json_txt = to_json($hash);
print $json_txt;

PHPJSONをデコード

$json_txt = $argv[1];
$hash = json_decode($json_txt);
var_dump($hash);

実行

perl enc_json.pl | php dec_json.php