PerlでWebサービスを楽に使える「WebService::Simple」をWindows環境に入れたときのメモ。

/ … ドキュメントルート
|-test.cgi … 動かすCGI
|-lib … ライブラリフォルダ

FreeStyle Wikiを動かしている環境で動かしたかったので、上記の構造。適宜読み替えてください)

環境はWindowsXP HOME SP3にXAMPPでインストールしたPerlが入っている状態です。
バージョンは、「This is perl, v5.8.8 built for MSWin32-x86-multi-thread」の通り(perl -v)。
■ファイルのダウンロード
CPANからモジュールをダウンロードします。
「[Download]」というリンクからダウンロードできます。

・WebService-Simple
http://search.cpan.org/~yusukebe/WebService-Simple-0.16/

・Class-Data-ConfigHash
http://search.cpan.org/~dmaki/Class-Data-ConfigHash-0.00002/

・Class-Inspector
http://search.cpan.org/~adamk/Class-Inspector-1.24/

・JSON-2.50
http://search.cpan.org/~makamaka/JSON-2.50/


■解凍と配置
ダウンロードしたファイルを解凍します。
gzip圧縮なので、Windows標準の解凍ツールでは回答できません(おそらく)。Lhaplusなどを別途インストールします。

解凍後、各フォルダにある「lib」フォルダの中身を、先に説明した「lib」の中に全てコピーします。

最終的な構成図は以下。

/ … ドキュメントルート
|-test.cgi … 動かすCGI
|-lib … ライブラリフォルダ
| |-JSON.pm
| |-Class
| | |-Inspector.pm
| | |-Data … フォルダの中身は省略
| | |-Inspector … フォルダの中身は省略
| |-JSON … フォルダの中身は省略
| |-WebService … フォルダの中身は省略


■動作テスト
以下のようなCGIをテスト。
参考→Google AJAX Language APIを使って翻訳(WebService::Simple版)

【コード】

#!/usr/bin/perl

use lib './lib';
use strict;
use WebService::Simple;

my $translate = WebService::Simple->new(
base_url => "http://ajax.googleapis.com/ajax/services/",
response_parser => "JSON",
params => {
v => '1.0',
langpair => 'en|ja',
}
);

my $response = $translate->get(
'language/translate', { q => 'i love' }
);

print "Content-Type: text/html\n\n";
print $response->parse_response->{responseData}->{translatedText}, "\n";


【アクセス結果】
私は大好き。