Perl - Masanoriのメモ帳

Perl


Perl

Perlに関するメモです。

Perlカテゴリ
Perlに関するページについてはCategory/Perlも御覧ください。

 SSLを使うモジュールがインストールできない場合・・・

例えば、Net::Twitter::○○とか...。とにかく、Crypt::SSLeayあたりを使うモジュール全般について、インストールできない場合の対策です。
いくつか躓くところがありますが、まとめて手順を書いておきます。

  1. まずは、OpenSSLの開発パッケージをインストール。
    • Fedora/CentOSなど: $ sudo yum install openssl-devel
    • Ubuntuなど: $ sudo apt-get install libssl-dev
  2. 次に、Net::SSLeay をインストール。
  3. 次に、Crypt::SSLeay をインストール。(LANG=Cをつけて、言語設定による不具合を回避。)
    • $ LANG=C cpanm -v Crypt::SSLeay
  4. 最後に、その目的のモジュールをインストール。うまく行くはず。

 Bareword "use_test_base" not allowed while "strict subs" in use at Makefile.PL

Test::Base および Module::Installをインストールすると解決できる。(参照)
ダメなら、直接 Makefile.PL を開き、
use_test_base;

&use_test_base;
に変更する (参照)

 Data::Model + Data::Model::Driver::MongoDBのエラー

Attribute (value) does not pass the type constraint because: Validation failed for 'Str' with value undef at /home/xxx/perl5/lib/perl5/x86_64-linux-thread-multi/Mouse/Util.pm line 383
	Mouse::Util::throw_error('Mouse::Meta::Attribute=HASH(0x249f580)', 'Attribute (value) does not pass the type constraint because: ...', 'data', undef, 'depth', -1) called at lib/Data/Model/Driver/MongoDB.pm line 128
	Data::Model::Driver::MongoDB::delete('Data::Model::Driver::MongoDB=HASH(0x247e0f8)', 'Data::Model::Schema::Properties=HASH(0x15fb9c0)', 'ARRAY(0x34d6a30)') called at /home/xxx/perl5/lib/perl5/Data/Model.pm line 503
	Data::Model::delete('Hoge::yyy=HASH(0x247e068)', 'Hoge::yyy::app_status=HASH(0x2dcb628)') called at /home/xxx/perl5/lib/perl5/Data/Model/Row.pm line 27

のようなエラーが発生する場合・・・Data::Modelのスキーマ定義で
各コレクションのカラムに"id"を入れ忘れていないか、チェックすること。

 WebAPIを使うスクリプトのテストの実装について

WebAPIを使うスクリプトのように"外部サーバとの通信を要するプログラム"に対してテストを書きたい場合・・・

http://perl-users.jp/articles/advent-calendar/2011/test/16

 CGIでブラウザの表示が途中でとまってしまう

printによる出力が最後まで行われていない可能性がある。
以下の点のような対策をすると解決するかも。

あとは、サーバソフトウェアを変えてみるとか。

 CPANの設定を初期化する(初期設定を行う)

コマンドブロンプトを起動して、cpanを実行して、

o conf init

を実行。

 LWPでSSL(HTTPS)を使えるようにする。

ActivePerl 5.10ではデフォルトでLWPが入っているが、Crypt-SSLeayが無いので、
SSLは使えない。Crypt-SSLeayを導入するには、PPMを利用する。
コマンドプロンプトを起動して、ppm-shellを実行。
install http://cpan.uwinnipeg.ca/PPMPackages/10xx/Crypt-SSLeay.ppd
と入力する。
必要なライブラリは自動的に入る。
また、必要なDLLなどが無い場合は、インストールするかどうか(yを選択)と、
インストール先(デフォルトのままEnter)を聞かれるのでそれに答える。
(尚、旧バージョンのActivePerlから移行する場合は、一旦アンインストールして、Perlのフォルダを完全に削除してから新しいバージョンに移行すること。)
情報引用:http://d.hatena.ne.jp/hirdy/20080221/1203594070

 Perlから他の言語を使う

以下のようなモジュールがあるのでそれを利用する。

 PAR(PerlスクリプトをEXE化するライブラリ)を入れる

確実にやるには、まず、以下のプログラム環境をそろえる。

以上。
参考ページ: http://hardsoft.at.webry.info/200801/article_4.html

wxPerl

Perl/Wxに移動しました


スポンサード リンク



メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク