トップページ⇒php
990コメント339KB

Perlモジュールについて

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/08/15(水) 07:47ID:???
モジュールについて話し合うスレッドです。

モジュールの使い方とかリンクは>>2-10さんが出してくれるかも?!
0101nobodyさん02/09/18 19:49ID:???
>>92
画像に表示させる文字列に日本語を使うことならできる
01029702/09/19 02:16ID:???
変なコンパイルて濡れもよくわからなかったのですが
メリットはOOでも書けるようになったっていうそのものじゃん。
OOPerlは変なコンパイルだからだめといわれてもできない方がいやだぞ。
cpanマンセー
0103nobodyさん02/09/19 09:22ID:???
初心者。
長大なテキストを既定のフォーマットにするために、WinでActivePerlを使ってる。
(エディタのマクロみたいな使い方)

文字列をShiftJIS化するのにjcode.plを使っていたが、最近Unicodeも
扱わないといけなくなったので、対応しているjcodeをコピーしようと思った。
ところが、なんだかJcode.pmにモジュール化されていて、CPANがどうのとか・・・。

一応、解説サイトを巡りながら頑張ったけど思うようにインストールしてくれず。

普通にエディタのマクロ使ったほうがイイ? でもPerlって扱いが楽なのさ。
0104nobodyさん02/09/19 10:51ID:???
>>103
(初心者はどうでも良いというか書かないほうが良い)

http://openlab.ring.gr.jp/Jcode/index-j.html
ここのJcode-0.81.zipをダウンロードして
perl win_install.pl
でもインストールできませんか?

どんな方法でモジュールをインストールしようとしたのかと
perlのバージョンを教えてくださいな。
0105nobodyさん02/09/19 12:09ID:???
>>104さん
うわ。すごい簡単にインストールできました。本当にありがとうございます。

今まで、
http://x68000.startshop.co.jp/~68user/net/ext-module.htmlの「CPANモジュール」を
見ながらやってました。
perl -MCPAN -e shel
lをやって、
install モジュール名
でうまくいかず。
0106nobodyさん02/09/19 12:19ID:???
もう二つ質問させてください。

1・
win_installがないモジュールの場合はどうすればよいのでしょうか。
たとえばLWPとかです。

2・
インストール先のフォルダを指定したい場合はどうすればよいのでしょうか。

Perlのバージョンは5.004です。会社のサーバFreeBSDと少しでも同じ環境にするため
古いVerのままなのです。
010710302/09/19 14:01ID:???
5.004だとppm使えないよねぇ。
(522のサポートはまだ続いてるのか?)

素直にCPAN.pm使いましょう。どこでこけてるのかな?
CPAN.pmについてはここが詳しいです。
http://digit.que.ne.jp/work/index.cgi?%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%28CPAN%29

インストール先はMakefileに定義されてます。
自分でmakeするならMakefileを作るときに設定できる。
http://member.nifty.ne.jp/hippo2000/perltips/module_install.htm
CPAN.pmを使うならそれも設定でできたと思った。
http://member.nifty.ne.jp/hippo2000/perltips/CPAN.htm
0108nobodyさん02/09/19 16:02ID:???
ありがとうございました。特に最後のリンク先が大変参考になりました。
今まではnmakeもCコンパイラもインストールせずにCPAN.pm使ってました。
試しにIO::Scalarをインストールしたところ、無事に成功しました。
本当にありがとうございました。
0109nobodyさん02/09/19 16:03ID:???
やっぱり英語はできたほうが良いのかな・・・?
0110 ◆JAPH9PWA 02/09/19 20:14ID:???
>>108
CPAN.pmは内部でmakeやCコンパイラを使うよ。
上手く設定するとCPANでインストールすることも可能。面倒だけどね。

>>109
出来た方がいいよ、絶対。
0111nobodyさん02/09/24 11:44ID:n1qFoNwr
CPAN.pmでモジュールをインストールしてると、
Perlの最新版をインストールしようとすることってある?
lwpをインストールしてて、英語わかんないから質問はすべてenter入力してたら
なんだかすごい量のファイルをインストールし始めた。
慌てて途中でやめたけど。
サーバのperlは5.0053なのに5.8のライブラリの処理とか始めたりして焦った。
0112nobodyさん02/09/24 11:57ID:???
>>111
うちも同様で、jperl5.005_03-990822 と v5.6.0 で perl -MCPAN -e shell
をやったら、perl-5.8.0 のインストールが始まっちゃった。
0113nobodyさん02/09/24 11:59ID:PkTNvTjp
>>112 >>111
ActivePerl:Win32の話?
それともUnix系のPerlの話?
011411102/09/24 12:03ID:???
>>113
うちはどちらも Linux で、それぞれ Slackware と Redhat7.2
でふ。
0115nobodyさん02/09/24 12:08ID:PkTNvTjp
たぶんCPANの遠隔操作?だろう。
昨日Cygwin/Perl5.8でTkインストールしようとしたら(もち失敗)
LWPとかいろいろチェックし始めたもん
別の話だが昨日からPPMコマンドも機能しないんだよなぁ
0116nobodyさん02/09/24 12:12ID:???
perl5.6と5.8はXSの互換がきかんので
再コンパイルの必要があるっていう話があったような。
011711102/09/24 12:26ID:n1qFoNwr
うちはfreeBSD。
sakuraのバーチャルドメイン。
ユーザスペースならモジュールのインストールもOKなので挑戦。
>>114さんは=112ですよね?
0118111 じゃなくて 11202/09/24 13:10ID:???
>>117
まちがえますた。おっしゃる通り 112 です。
0119nobodyさん02/09/30 08:33ID:56lq+6AY
sakuraにLWPは、あきらめて古いバージョン(plファイル)入れました。
はぁ。
0120nobodyさん02/10/04 08:13ID:???
「Perlについての質問箱」がruby基地外によって潰されました。
心ある人は、rubyスレにお礼参りしてください。
0121nobodyさん02/10/04 10:22ID:???
Storable-2.05 が出てる。

> Since Storable version 2.05, CODE references may be serialized with
> the help of B::Deparse.

ですと。
0122 ◆hMJAPH9PWA 02/10/04 17:25ID:???
>>121
ほう、それはなかなか…ていうかバグフィクスだろうと思ってchanges見もしなかったよ。

さて、CPANでインストールでもするか…と思ったら失敗。Storable.dllが削除できないと…?
…っておいCPAN!お前がStorable使ってるからだろ!
Winはこれだからねぇ…いやはや、何事かと思ったよ。

気を取り直して…実行!
> perl -wl t.pl
B::Deparse version 0.61 required--this is only version 0.6 ...

Bは…アップデート…できないよね。
Perl5.6.1(ActivePerl631)じゃダメでした。( ´・ω・`) ショボーン
0123nobodyさん02/10/10 05:54ID:???
jhhhh
0124nobodyさん02/10/11 16:35ID:BLCX+amr
ImageMagicをperlで使ってます。
二つの画像をレイヤーみたいに重ねて一つの画像として出力するには、
どのMethod使えばいいですかね?

あとImageMagicを日本語で解説してるとこないですかねぇ〜
0125nobodyさん02/10/13 13:58ID:???
>>124 Composite
0126nobodyさん02/11/02 05:03ID:o+t0cR8M
あげとくか。
0127nobodyさん02/11/05 07:25ID:CJxmL6tb
ActivePerlで、GD.pmを使ってTrueTypeフォントを印字すると
□□□□□っていう風な文字になるんだけどなぜなんでしょうか?

スクリプトとフォントはGD.pmに付属してる奴で試しました

GD.pmはppmでインストールしたのでバージョンは1.27
ActivePerlは 5.6.1 build 632です
0128nobodyさん02/11/05 08:01ID:CJxmL6tb
http://www.pluto.dti.ne.jp/~hisato/daily/200207.html#05_t2
自己レス、どうやらppmで落とせるのは駄目らしい
ここにあったので試してみたらできた
0129nobodyさん02/12/01 21:39ID:+x4ey74A
perlmagickでJPEG画像のサイズ変更しても
ファイルサイズ落ちないんだけど
誰か原因わかる人おらんかな?

↓こいつが変
$image->Quantize(Colors=>$co,dither=>'True');

しょうがないから 一旦ppm形式で書き出して
cjpegでJPEG作り直してるやけど。
ちょっと質問がマニアックすぎるか??
0130nobodyさん02/12/01 21:48ID:+x4ey74A
訂正(間違った)

↓こいつが変
$image->Scale("$new_x[0]x$new_y[0]");

でもQuantizeもファイルサイズ落ちない。
結局どっちもサイズ落ちない。どうしてだろ
0131nobodyさん02/12/02 10:03ID:???
qualityっていう設定項目あるけど
うちでうまく動かないなぁ

教えておくれ。
0132nobodyさん02/12/02 10:41ID:???
WinのPPMじゃqualityうまく動かないYO!
$i->Set(quality => 30);
で圧縮率決められる1-100
デフォルトは75くらいだったかな?
0133nobodyさん02/12/03 16:44ID:HKnS3bC9
スンマセン さくらの共用サーバでPerlMagickを使いたいんですが
どうやってインストールして
どうやって呼び出すのでしょうか?
0134nobodyさん02/12/03 16:57ID:???
インストールされてるのか?
0135nobodyさん02/12/03 17:02ID:HKnS3bC9
されてないんで
ユーザー権限でコンパイルして使おうと思うんですが・・・
できないのでしょうか?
0136nobodyさん02/12/03 18:06ID:???
WindowsのActivePerlで
ImageMagickの最新版いれたいんですが
PPMで入れると古いのしか入りません

http://www.dylanbeattie.net/magick/download/
から取ってきて--locate=**で入れても
一応入ることには入るのですが
実際に動きません・・・
どうすれば使えるのでしょうか?
0137nobodyさん02/12/03 19:39ID:???
>>130 136
ttp://sugachan.dip.jp/download/
これ使ってみ。
0138nobodyさん02/12/03 19:40ID:???
>>135
さくらに聞け。
自領域にインストールできるなら use lib なりしてパス通せ。

>>136
エラーメッセージは?
0139nobodyさん02/12/03 19:45ID:???
>>137
どなたでつか?(;´Д`)
更新してまだ10分立ってないのに転載されてる
0140nobodyさん02/12/06 02:46ID:eehXM/N6
ttp://sugachan.dip.jp/download/joyful.php
コレ使いたいんですが
さくらのサーバでPerlMagickをコンパイルしようと
Magick.xs:81: magick/api.h: No such file or directory
と出てコンパイル出来ません
どうすればコンパイルできるのでしょうか?

それかコンパイル済みのバイナリをダウンロードできるところは
ないでしょうか?
0141nobodyさん02/12/06 02:50ID:eehXM/N6
ちなみにさくらのサーバは
FreeBSD4.6みたいです。
0142nobodyさん02/12/06 08:52ID:???
>>139
自作自演って言いたいのね。
0143nobodyさん02/12/07 21:14ID:???
>>140
うぜ。
>Magick.xs:81: magick/api.h: No such file or directory
読めよ馬鹿。api.hがないって言ってるじゃないか。
必要ならアップしろよ。
0144nobodyさん02/12/08 10:53ID:???
アプロダにアップしたりしてな。
0145nobodyさん02/12/09 15:16ID:???
>>143を温かく翻訳
モジュールのインストールには、サーバ権限とか知識もそうですが、
なによりも、1,2行の英文くらいは読めるスキルが重要ですよ。
014614302/12/09 22:31ID:???
>>145
翻訳ありがとう。
ていうか、学校で何習ってんだ? リアル厨房レベルの英語だろ? 厨房以下かてめー。>>140
0147nobodyさん02/12/10 00:28ID:???
>>146
うるせー
0148nobodyさん02/12/10 00:28ID:???
>>147
なにをー

0149nobodyさん02/12/10 19:26ID:???
まぁまぁ・・お二人とも落ち着いて。。。
0150nobodyさん02/12/14 17:49ID:wCLHLBJq
DBIモジュールってピュアPerlですか?
0151nobodyさん02/12/15 12:19ID:???
archive::lzhとかないかなー。
zipとかはあるんだよね。
0152nobodyさん02/12/15 13:22ID:UwocQ4Wo
>>151
0153nobodyさん02/12/16 23:15ID:???
>>152
続きが気になる……。

続き、あるよな?
0154nobodyさん02/12/17 08:36ID:???
>>153
152はCPAN Searchで検索してみたんだけど
多分見つからなかったんだよ。
0155nobodyさん02/12/26 02:31ID:???
どなたか Win2kのActivePerl5.8.0で動くGDモジュール(gifでなくpngを描けるもの)の
ありかをご存知ないですか?
ppmで見つかるのは5.6用のものらしくダメっぽいです

あるいはCPANから取ってきてコンパイルするしかないのでしょうか…
どなたか(cygwinで)成功された方いらっしゃいませんか?
0156 15503/01/02 02:33ID:???
結局perlを5.6.1に戻しました…
0157nobodyさん03/01/13 07:35ID:D+2O0or4
>155
ttp://theoryx5.uwinnipeg.ca/ppms/
0158山崎渉03/01/15 13:32ID:???
(^^)
0159nobodyさん03/01/15 22:10ID:???
Image-MagickのActivePerl5.8で動くppmってどこにありますか?
155と同じように5.6に戻したほうがいいのかな?
0160 15503/01/15 23:58ID:???
>157
ありがとうございます.見事動きました.
#本当はこんな何もわからずに使っちゃダメなんだろうけど
016115703/01/18 14:51ID:???
>159
ftp zoffy.asahi-net.or.jp/pub/graphics/ImageMagick/binaries/
ImageMagick-5.5.3-Q8-win2k.exeに入ってるよ。
インストール後ppm2で入れなきゃならん
*\ImageMagick\PerlMagick\Image-Magick.ppd

windowsディレクトリのzipでもいいかもしれんが試してない
>155
大丈夫、漏れもよく分からん。
0162nobodyさん03/01/26 07:03ID:???
激しく禿同
0163nobodyさん03/01/27 14:39ID:???
>>162
二重強調はうざいとつっこんでみる。
0164山崎渉03/03/13 17:25ID:???
(^^)
0165nobodyさん03/03/19 12:05ID:b5iFnjmv
BUGなら諦めるから、誰か教えてくれ!
This is perl, v5.6.1 built for i386-linux
+
Net-Telnet-3.03.tar.gz
で、特定のアカウントだけログインできないのだが、
$port23 ->login("NASDAQ", "S&P500");
の様に、パスワードに「&」が入るとエラーが出る。
うまい回避策は無いだろうか。
0166nobodyさん03/03/19 12:43ID:???
>>165
\&でエスケープするとどうなる?
それかだぶるくぉーとをシングル苦ぉーとにするとか
0167nobodyさん03/03/19 12:52ID:b5iFnjmv
>>166
\& も && も駄目だった。
ダブルクオートもシングルクオートも駄目だった。
他には何か有りますか?
0168nobodyさん03/03/19 13:16ID:???
>>167
パスワード変更する・・・
0169nobodyさん03/03/19 16:48ID:b5iFnjmv
>>167
変更したら怒られる。と言うか騒ぎになる。

別IDでログインしてからsuする方法で模索開始!
駄目なら、プログラムのラッパー作って、Sビット立てたる。

モジュールを解析する気は無いらしい・・・
0170nobodyさん03/03/19 16:54ID:???
>>169
モジュール解析の前に。Dump_Log をとってみ。
そのログからとりあえず理由はわかると思われ。
0171nobodyさん03/03/21 17:29ID:pOguTMzc
PDFを出力できるモジュールってありますか?
0172nobodyさん03/03/21 17:52ID:???
>>171
PDFlib使ったら?
0173nobodyさん03/03/21 20:21ID:pOguTMzc
PDFlibってフリーでつか?
簡単にコーディングできまつか?
0174 03/03/22 19:26ID:2uze5ULU
dmake.plってどこにあるの?
0175あぼーんNGNG
あぼーん
0176nobodyさん03/03/23 01:03ID:???
>>4
それprologのmember述語だな。
0177nobodyさん03/03/31 23:42ID:lrdCZ3fP
PerlでCGIを組むときのお勧めモジュールを教えてください。

・セッション管理
・ユーザ認証
・ロジックと表示部の分離

それぞれどんなモジュールがありますか?
0178nobodyさん03/04/01 03:46ID:???
>>177
http://sl.edge.jp
0179nobodyさん03/04/01 23:12ID:y/azGnm1
>>178
ありがとう。
ご紹介のWebフレームワークの出来は実際のところ
どうなのでしょうか?業務Webアプリに使えますか?
使いやすさ、品質、実績、などは?

それからドキュメントは付属のものしかないのですか?
市販本などはないのでしょうか?
0180!17803/04/01 23:46ID:???
ttp://itpro.nikkeibp.co.jp/free/NOS/NEWS/20030213/2/
業務で使った実績はアリだそうで。

ttp://sourceforge.jp/mail/?group_id=448
ここのMLのログのアーカイブを覗いたら、

>ちょっと試してみた方はお気付きかと思いますが、結構動作させるまでの敷居
>が高いです。Sledge::Doc::Tutorial も前提知識をかなり必要としていますし。。

>samples の充実と sledge-setup ツールの充実は、近々のTODOとして認識して
>ますので、もう少しご辛抱ください。もちろん、パッチ歓迎です!

…だそうです。

その後にクラス図のファイルをアップしましたって記事も。
ドキュメント類はこれからですかね。
0181nobodyさん03/04/02 17:40ID:???
perl5.8.0 MSWin32-x86-multi-thread で、
perldoc の改行位置がおかしくなったり
pack_sockaddr_in が使えなく(?)なったりしたのですが、
同様の症状が出た方いませんか?
0182 ◆hMJAPH9PWA 03/04/03 00:19ID:???
>>181
perldocはおかしかった。
とりあえず576行目(my ($tmpfd, $tmp) = File::Temp::tempfile(UNLINK => 1);)の後に
binmode($tmpfd, ':crlf');
を追加したら直ると思う。

pack_sockaddr_in()は使おうと思った事がないのでわからないな。
0183nobodyさん03/04/03 07:36ID:???
ありがとう。助かります。

pack_sockaddr_inは、私の勘違いでした。
pack_sockaddr_inの引数に、getservbyname, gethostbynameで所得した値を設定していた事が原因でした。
pack_sockaddr_in(80, 'www.example.com')で問題無く動作しました。
単に、使い方を誤っていただけで。お騒がせしてスミマセン。
0184nobodyさん03/04/03 13:34ID:KIsujz3E
>>183
> pack_sockaddr_in(80, 'www.example.com')で問題無く動作しました。
これで本当にうまくいった???
0185nobodyさん03/04/03 16:00ID:???
ゴメン。inet_aton忘れてた
0186nobodyさん03/04/03 20:13ID:pMBEJ0AD
fieldsとかClass::StructとかClass::Fieldsとか見つけたんだけど、
自分でモジュールを作るとき、どんな風に組み合わせるのがエレガントですか?
0187nobodyさん03/04/05 09:21ID:???
Class::* 関連ってモジュール多いよね。
エレガントなクラス設計には、私も興味あります。
一言にエレガントと言っても、状況次第で解決策は変わってくるでしょうから
実際に作成するモジュールの条件を指定しないことには、
抽象化された一般的な回答しか得られないと思います。… 要は、case by caseと。


ところで、Class::Structの例が動かなかったんだけど、
メンバにオブジェクトを持つ時は、明示的にインスタンスを作ってやらないといけないの?

use Class::Struct;
struct( ClassA => { foo => ClassB });
struct( ClassB => { bar => '$' });

my ($obj);
$obj = new ClassA;
$obj->foo = new ClassB; # <-- 必要 ?
$obj->foo->bar(1);
0188nobodyさん03/04/05 16:15ID:???
Class::Struct、、ソースがごたごたでよくわからんけど、
requireする処理が入ってないから、見えるところにクラス(パッケージ?)
を置いておけばちゃんと動くかと。実験してないけど。
0189 ◆hMJAPH9PWA 03/04/05 20:58ID:???
struct()する前に
Class::Struct::printem(1);
としておくと、evalするコードを出力してくれるよ。

しかしClass::Structってクラス設計というより単なる構造体を作成するユーティリティなんじゃないかと思われるが…。
0190nobodyさん03/04/06 10:59ID:XHJoDMK3
構造体はハッシュで代用できるので、
強いて利点を挙げるなら、宣言のところでメンバ変数の一覧が確認できるのと、
ハッシュだと、keyのtypoでも警告なしに通ってしまうことがあるのを防げること。
クラスの設計に利用する利点は…何かあるかな?クラス内でのデータ管理?

ところで、Perlでモジュールというと、
Perlには別のアプローチでのカプセル化の手段 tie があるよね
データ構造について抽象化できる場合なんかは、
こっちの方が Perl っぽくて良くないかな?

丁度、それっぽい記事を読んでいたので、

IBM : developerWorks : 洗練されたPerl: タイ変数 (Tied variables)
http://www-6.ibm.com/jp/developerworks/linux/030404/j_l-cptied.html
0191nobodyさん03/04/08 04:08ID:O1bDvd1L
構造体が、型であるところがいいんだよ。

ハッシュはねぇ…ハッシュはねぇ…。
0192あぼーんNGNG
あぼーん
0193あぼーんNGNG
あぼーん
0194あぼーんNGNG
あぼーん
0195あぼーんNGNG
あぼーん
0196山崎渉03/04/17 12:08ID:???
(^^)
0197nobodyさん03/04/18 11:29ID:qP4xwYVk
Sledgeって何なの?
難しい文字の羅列で説明見ても分からんのだけど、
思いっきり車輪の再発明ではないの?
0198山崎渉03/04/20 06:02ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0199nobodyさん03/04/24 13:41ID:???
>>197

再発明。ただし、再発明=悪とは限らない。
実際の話、自社の開発スタイルに適したフレームワークを確立してるとこは強いよ。
(Sledgeがその器かどうかは知らんが)
0200nobodyさん03/04/30 03:18ID:DNJ+ul9N
フレームワークって、
自分で再発明を繰り返さないためのものでしょ。

セッションの処理とか、フォームのデータの扱いとか、
いままで毎回毎回似たようなコードを書いていたようなものを、
うまくフレームワークにまとめてくれてるんだから、
ありがたいと思うよ。
0201nobodyさん03/05/08 14:23ID:J45m1fTB
Apache::Session::Mysqlで、
セッションをロードしたとき、untieなどでロックを解放しなかった場合、
次のセッションでどうしてもApache::Session側が必ず固まってしまうのですが
なにか対処法ないでしょうか・・・

ちなみにLinux/apache 2/mod_perl 1.99.09/Apache::DBI/MySQL 4.0です
■ このスレッドは過去ログ倉庫に格納されています