私のホスト(iPage)にはJSON.pmがインストールされていません。CGIスクリプトからWebページにデータを転送するために、インストールされているモジュール(XML)を使用したくありません。とにかく、PerlにインストールせずにJSONを使用できることはありますか?
私が尋ねる理由は、JSON zipをダウンロードしたときに、makefile json.pmコマンドを実行する必要があることに気付いたのですが、UnixシェルまたはSSHターミナルにアクセスできないためです。
私のホスト(iPage)にはJSON.pmがインストールされていません。CGIスクリプトからWebページにデータを転送するために、インストールされているモジュール(XML)を使用したくありません。とにかく、PerlにインストールせずにJSONを使用できることはありますか?
私が尋ねる理由は、JSON zipをダウンロードしたときに、makefile json.pmコマンドを実行する必要があることに気付いたのですが、UnixシェルまたはSSHターミナルにアクセスできないためです。
Perl が 5.14 以降の新しいものであれば、JSON パーサーの純粋な Perl 実装であるJSON::PPが付属しています。紛らわしいことに、JSON.pm には付属していません。それでuse JSON::PP
、うまくいくかどうか試してみてください。
それ以外の場合は、イルマリの指示に従ってください。シェル アクセスでホストに切り替える場合、local::libを使用して CPAN モジュールを管理できます。
シェル アクセスなしで、純粋な Perl バージョンの JSON モジュールのローカル コピーをインストールできるはずです。.tar.gz
アーカイブを自分のコンピューターにダウンロードして解凍し、lib
サブディレクトリの下のすべてをウェブホストの適切な場所にコピーするだけです。
また、Perl にモジュールの場所を伝える必要があります。そのためには、モジュールのコピー先のファイルシステム パスを知る必要があります。たとえば、lib
ディレクトリの内容を Web ホストにコピーした場合/home/username/perl-lib
は、コードに次の行を含めます。
use lib '/home/username/perl-lib';
use JSON;
ウェブホストの設定方法によっては、次$ENV{HOME}
のように記述できるように、ホーム ディレクトリへのパスを取得するために使用できる場合もあります。
use lib "$ENV{HOME}/perl-lib";
use JSON;
または、FindBin モジュールを使用して、スクリプトを含むディレクトリへのパスを検索し、そこからディレクトリを見つけることもできますlib
(FindBin ドキュメントの例を参照してください)。