Perlの変更点 - Masanoriのメモ帳

Perlの変更点

!!!Perl
Perlに関するメモです。

:Perlカテゴリ:Perlに関するページについては[[Category/Perl]]も御覧ください。
!!SSLを使うモジュールがインストールできない場合・・・
例えば、Net::Twitter::○○とか...。とにかく、Crypt::SSLeayあたりを使うモジュール全般について、インストールできない場合の対策です。
いくつか躓くところがありますが、まとめて手順を書いておきます。
+まずは、OpenSSLの開発パッケージをインストール。
**Fedora/CentOSなど: $ sudo yum install openssl-devel
**Ubuntuなど: $ sudo apt-get install libssl-dev
+次に、Net::SSLeay をインストール。
+次に、Crypt::SSLeay をインストール。(LANG=Cをつけることで、言語設定による不具合を回避)
+次に、Crypt::SSLeay をインストール。(LANG=Cをつけて、言語設定による不具合を回避。)
**$ LANG=C cpanm -v Crypt::SSLeay
+最後に、その目的のモジュールをインストール。うまく行くはずです。
+最後に、その目的のモジュールをインストール。うまく行くはず。
!!Bareword "use_test_base" not allowed while "strict subs" in use at Makefile.PL
Test::Base および Module::Installをインストールすると解決できる。([参照|http://d.hatena.ne.jp/osi7/20090427/1240798713])
ダメなら、直接 Makefile.PL を開き、
use_test_base;
を
&use_test_base;
に変更する ([参照|http://d.hatena.ne.jp/h_kenan/20080229])
!!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を使うスクリプトのように"外部サーバとの通信を要するプログラム"に対してテストを書きたい場合・・・
* "Test::Fake::HTTPD"などを使ってテスト用のフェイクサーバを作る。
* もしくは、"Test::Mock::LWP::Conditional"を使ってリクエストに対するレスポンスを変更するスタブをあてる。
http://perl-users.jp/articles/advent-calendar/2011/test/16
!!CGIでブラウザの表示が途中でとまってしまう
printによる出力が最後まで行われていない可能性がある。
以下の点のような対策をすると解決するかも。
*$l=1;を記述する。{{br}}($lを0以外に設定しておけば出力のバッファリングを行わなくなる→つまりprintなどをするとすぐに出力する。[参考|http://www.geocities.co.jp/SiliconValley-Sunnyvale/6128/perl/evalue.html])
*最後のprintの末尾に改行を入れる
*実行が終了する前(exitの前)に、close STDOUT;で、ブラウザへの出力終了を行う。
あとは、サーバソフトウェアを変えてみるとか。
!!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から他の言語を使う
以下のようなモジュールがあるのでそれを利用する。
*C : Inline::C
*Java : Inline::Java
*JavaScript,VBScript : Inline::WSC{{br}}http://search.cpan.org/~johnd/Inline-WSC-0.02/
!!PAR(PerlスクリプトをEXE化するライブラリ)を入れる
確実にやるには、まず、以下のプログラム環境をそろえる。
*ActivePerl 5.10.0 (Build 1004)
**http://downloads.activestate.com/ActivePerl/Windows/5.10/ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi
*MinGW 5.1.4
**http://sourceforge.jp/projects/sfnet_mingw/downloads/Automated%20MinGW%20Installer/MinGW%205.1.4/MinGW-5.1.4.exe/
*Microsoft nmake 1.5
**ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
*PAR 0.991
**http://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/modules/by-module/PAR/PAR-0.991.tar.gz
*PAR::Packer 0.991
**http://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/modules/by-module/PAR/PAR-Packer-0.991.tar.gz
+ActivePerl 5.10.0 (Build 1004)(ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi)をインストールする。{{br}}インストール設定はデフォルトのままで構わない。
+MinGW 5.1.4(MinGW-5.1.4.exe)をインストールする。{{br}}インストール時、以下のファイルだけ選択してインストールを行う。
**MinGW base tools
**g++ compiler
+Windowsの、システムのプロパティ(システムの詳細設定)から、”環境変数”設定を開き、{{br}}MinGWをインストールしたパス(例:C:\MinGW\bin)を、システム環境変数の”Path”に追記する。
+Microsoft nmake 1.5(nmake15.exe)、PAR(PAR-0.991.tar.gz)、PAR::Packer(PAR-Packer-0.991.tar.gz)は、{{br}}Lhaplusなどのアーカイバソフトウェアを利用して、{{br}}それぞれ、適当な場所(デスクトップなどでも可)へ、解凍(展開)を行っておく。
+nmake15.exeを解凍(展開)して出てきた、NMAKE.EXEと、NMAKE.ERRを、{{br}}Perlをインストールしたフォルダの中のbinフォルダ(例:C:\Perl\bin\)にコピーする。
+コマンドプロンプトを起動し、PAR(PAR-0.991.tar.gz)を解凍(展開)して出てきたフォルダへ移動する。
+コマンドプロンプトで、Makefile.PL と入力し実行する。
+コマンドプロンプトで、nmake と入力し実行する。
+コマンドプロンプトで、nmake installと入力し実行する。
+コマンドプロンプトで、PAR::Packer(PAR-Packer-0.991.tar.gz)を解凍(展開)して出てきたフォルダへ移動する。
+コマンドプロンプトで、Makefile.PL と入力し実行する。
+コマンドプロンプトで、nmake と入力し実行する。
+コマンドプロンプトで、nmake installと入力し実行する。
以上。
参考ページ: http://hardsoft.at.webry.info/200801/article_4.html
!!!wxPerl
→[[Perl/Wx]]に移動しました


メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク