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

Perlモジュールについて

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

モジュールの使い方とかリンクは>>2-10さんが出してくれるかも?!
0385nobodyさん04/06/30 06:04ID:???
>>384
この辺を調べ尽くし済なら知らないなぁ。
http://search.cpan.org/search?query=Bayes&mode=all
http://www.google.co.jp/search?num=100&q=Bayesian+Perl
0386nobodyさん04/06/30 11:52ID:???
>>385
サンクスコ
とりあえず、
http://search.cpan.org/~kwilliams/AI-Categorizer-0.07/
を呼んで見ることにしたよ。
0387nobodyさん04/08/08 11:17ID:Ejd6WZ6r
MIME::Explodeと同じ様な感じで、
ファイルではなくメモリ上に展開してくれるモジュール無いですか?
0388nobodyさん04/08/08 14:32ID:???
MIME::Parser
0389nobodyさん04/08/08 17:57ID:???
perlでmysqlを操作するために必要なモジュールってなんでしたっけ?
DBIと他に二つくらいあった気がするんですが忘れてしまいました。

一応今はwinxpにactiveperl5.6.1.638が入ってるのでPPMを使ってやろうと思いますが一応順番も関係あった気がするので
知ってる方おながいします。
039038904/08/08 18:11ID:???
Data-Dumper
DBI
Msql-Mysql-modules

の3つを上の順番でインスコでした;失礼しました。
039138904/08/08 18:23ID:???
すみません;何故かppmでエラーが出ます。

perl.exeはc:\usr\binにあるのでwinxpのコマンドプロンプト開いて
cd \usr\binとして
c:\usr\bin>ppm install Data-Dumper
をやると以下のエラーがでました。
Failed to load PPM_DAT file
Can't use an undefined value as a SCALAR reference at C:/usr/site/lib/PPM.pm lin
e 1678, <DATA> line 40.

翻訳
PPM_DATファイルをロードしませんでした。
C:/usr/サイト/lib/PPM.pm lin e 1678、<DATA>40行でSCALAR参照として
不確定の値を使用することができません。

以前のパソコンはwin98だったのですが、同じactiveperlのバージョンで問題なくインストールできました。
エロイ人おながします。
0392nobodyさん04/08/08 19:28ID:???
>>391
PPM のバグのせいで ppm.xml が壊れてしまったんじゃないかと思う。
直し方は知らないのだが、5.8.4 に移行すればたぶん問題なくなる。
039338904/08/08 23:15ID:???
>>392
ありがとうです。
今度使うサーバがactiveperl5.6.1.638を使ってるので、一応同じもので動作確認をしたくってこれを使ってます。
perlの再インストールとか試してみます。
039438904/08/09 06:56ID:???
perlの再インストールをしたらData-Dumper、DBIの二つは無事ppmでインストールできました。
でもMsql-Mysql-modulesで下のようなエラーがでました。
C:\usr\bin>ppm install Msql-Mysql-modules
Installing package 'Msql-Mysql-modules'...
Error installing package 'Msql-Mysql-modules': Read a PPD for 'Msql-Mysql-module
s', but it is not intended for this build of Perl (MSWin32-x86-multi-thread)

翻訳
パッケージ「Msql-Mysqlモジュール」のインストールパッケージ「Msql-Mysqlモジュール」
をインストールするエラー:「Msql-Mysqlモジュールs」のためにPPDを読む
、しかし、それはPerl(MSWin32-x86マルチスレッド)のこの構造のために意図されません。

activeperlを入れてるディレクトリが悪いのでしょうか?それともmysqlの場所が悪いのでしょうか?
mysqlはc:\mysqlディレクトリにあります。再インストールは何度かしてみましたが変わらずです。
mysql4.0.18を使っています。


0395nobodyさん04/08/09 08:56ID:CVqqb4Xe
HTML::Templateが全く動かないんですが、
どこがおかしいのでしょうか?
ある程度複雑なコード書いて全く何も出力されなかったので、
簡単なコード書き直して試してみたのですが、やはりなにも出力されません。

a.pl

#!/usr/bin/perl
use strict;
use HTML::Template;

my $html = HTML::Template->new(filename => 'a.tmpl');
print "Content-Type: text/html\n\n";
$html->output;


a.tmpl

<html>
<head><title>Test Template</title>
<body>
</body>
</html>

0396nobodyさん04/08/09 08:58ID:???
何も出力されないというのは
0397nobodyさん04/08/09 08:58ID:CVqqb4Xe
途中で送信してしまいました。
何も出力されないと書きましたが
Content-Type: text/html

だけは出力されます。
HTML::Templateが何も出力してくれないという事です。
0398nobodyさん04/08/09 09:49ID:???
>>397
HTML::Templateが壊れてるんじゃないの?
0399nobodyさん04/08/09 10:01ID:???
CPAN使って
install HTML::Templateで入れただけなのですが…
0400nobodyさん04/08/09 10:02ID:???
$html->output; は返すだけだったと思う
print $html->output; にしないと
0401nobodyさん04/08/09 10:05ID:???
print $html->output;
0402nobodyさん04/08/09 10:07ID:???
動きました。ありがとうございました。
getResultみたいなメソッド名にしてくれれば、
こんな事で悩まないのに…
040338904/08/09 10:23ID:???
Msql-Mysql-modulesの代わりにDBD-mysqlをインストールして解決いたしました。失礼します。
0404nobodyさん04/08/09 12:22ID:???
>>402
$html->output(\*STDOUT)でもいけたはず。
メソッド名が紛らわしいのは同感だが、ドキュメントのSYNOPSISくらい読もうな。
0405nobodyさん04/08/28 17:28ID:XMnxFKiq
CGI::Sessionってセッション管理にCookieを使う事が必須なのですか?
POSTやGetでセッションIDを渡していく方法はできないのでしょうか?
0406nobodyさん04/08/28 17:41ID:???
>>405
http://perldoc.jp/docs/modules/CGI-Session-3.11/Tutorial.pod
0407nobodyさん04/08/30 17:28ID:???
>>405
CGI::Session のマニュアルも見ねぇのかよ。氏ね。
0408nobodyさん04/10/11 17:29:51ID://6u00DL
CGI::SessionはPHPのセッションと同等のことができるんですね。
素晴らしい。
0409nobodyさん04/10/11 18:43:46ID:???
DBIとかも保持できるの?
コネクション切れちゃわない?
0410nobodyさん04/10/11 20:45:35ID:???
DBコネクションを保持するのはセッションとは全然別の話だから
Apache::DBI で対応する
0411nobodyさん04/10/11 23:48:16ID:???
Class::DBIつかったら、Apache::DBI使わなくても
かってに保持される?
0412nobodyさん04/10/12 00:14:09ID:???
Class::DBI が使っているのは Ima::DBI
これはコネクションを保持するんじゃなくてクエリ結果をキャッシュしておくやつ
041341104/10/12 01:33:21ID:???
>>412
へぇー。知らなかった。
メモリ食いそうだな。。
0414nobodyさん04/10/12 04:52:53ID:???
Apache::DBIはmod_perlが必要なのかOTL
0415nobodyさん04/10/12 10:37:05ID:???
まあ普通に考えてプロセスが終了すればコネクションも切れる。
CGIはリクエスト毎にプロセスが終了するので、誰かが生き続けないといけない。
PHPの場合は mod_php が apache 内部で生き続ける。
同じことを perl でやろうとするなら、当然 mod_perl という話になる。
0416nobodyさん04/10/12 12:13:31ID:???
>>415
FastCGIとかでもいいんでない?
0417nobodyさん04/10/14 10:22:20ID:???
>>412
Ima::DBI - Database connection caching and organization
同一プロセスで、
dbhと、prepareされたSQLステートメントをOO的に使いまわす仕組み。
クエリのキャッシュじゃない。
0418nobodyさん04/10/17 13:11:00ID:cj8+Zu2z
PHPのSQLiteみたいにテキストファイルに対してSQLで
データのやりとりをするモジュールってできないかな。
速度的にも十分実用的なやつ。
DBD::CSVなどはちょっと実用的じゃないですしね。
0419nobodyさん04/10/17 13:37:58ID:???
PerlでSQLiteを使えば?
それとも、PHPのSQLiteって別物?
0420nobodyさん04/10/17 14:28:43ID:???
>>419
全く同じでつ
0421nobodyさん04/10/17 16:05:10ID:???
>>418
使ったこと無いんだけどDBD::CSVとかDBD::Spriteって実用的じゃないの?
速度はそりゃ劣るだろうがそこそこいけるみたいだったが
DBD::SQLite入れるのが一番はやいと思うけどね
0422nobodyさん04/10/18 21:21:06ID:???
DBD::SQLiteっつーのがあるんだ?
知らなかったよ。
0423nobodyさん04/10/19 00:14:31ID:???
cpanで検索くらいしろよ
0424nobodyさん04/10/19 01:34:32ID:???
cpanってなんて読むの?
くぱん?しーぱん?しーぴーあん?こぱん?
0425nobodyさん04/10/19 03:57:01ID:???
>>424
きーぱんないとれい
0426nobodyさん04/10/19 10:49:16ID:sbgcDJ+7
1.http://aaa.a.a/a.cgi

2.http://bbb.b.b/b/cgi

1のプログラム上から引数を渡して2のプログラムを動作させて
結果を1のプログラムに返すようなことって可能でしょうか?

2のサーバーのローカルにあるデータベースからデータを取得して
1のサーバーのローカルにあるデータベースにデータを保存したいと
おもっております。 言語はperl使用です。

まったくモジュールのことがわからないのですが
LWPモジュールとHTTP::Request::Commonモジュールの
組み合わせで作成可能でしょうか?
0427nobodyさん04/10/19 11:45:46ID:???
まあそういうことだ。

やりたいことにもよるが、
たぶん君の場合は、LWPの中に入っている LWP::Simple で用が足りると思う。
0428nobodyさん04/10/19 19:36:06ID:???
つーか、玄人ならNet::HTTPを使うね。
0429nobodyさん04/10/20 10:07:09ID:???
POEでもいいぞ
0430nobodyさん04/10/20 17:20:13ID:Z3mYsmEN
>>426

LWPを使用してデータを取得できるようにはなりました。
ただ、呼び出しもとのCGIからPOSTを使用して
データを送りLWP::UserAgentをつかってるので
CGIから呼び出したCGIの実行結果に
HTTP/1.1 200 OK Connection: close Date:・・・
と引っ付いてきます。
CGIから出力したデータのみを受け取る方法は
ないでしょうか?
送信結果に必ず専用の文字列を付けてsplitで
分割してやればとれるのですが・・・。
0431nobodyさん04/10/20 20:24:28ID:???
HTTP::Response (HTTP::Message) の content メソッドを使え
0432nobodyさん04/10/20 22:56:16ID:???
PerlerならNetモジュールシリーズということで
Net::HTTPを使おう!
0433nobodyさん04/10/22 20:38:20ID:W90PZT9w
LWP::Parallel::UserAgentの使いかたの日本語サイトってありますか?
LWP::UserAgentから移行したいのですが使いかたがわかりません。
WEBからHTMLを引っこ抜くだけでいいので、教えて下さい。。。
0434nobodyさん04/10/23 23:04:20ID:???
ヘッダは一番初めの\r\n\r\nまでだからそこまで
スキップするなり削るなりすればよろし。
HTTP/1.\dを送らない場合もヘッダ送ってこないね。
0435nobodyさん04/10/23 23:31:37ID:???
むしろLWP::Simple使えば楽そうだけど
0436nobodyさん04/10/23 23:51:23ID:???
>>433
君もよくこんなあやしいモジュールを見つけてきたな。
man を読んでも使い方がわからん(笑)。
まあ冗談抜きで作者に直接聞くのが良さそうに思える。

>>435
GET でなく POST が必須のケースだと LWP::Simple では厄介なのかもしれん。
0437nobodyさん04/10/26 17:52:20ID:1e7srzTI
無限ループに陥ったかどうか監視するようなのありませんか?
0438nobodyさん04/10/26 17:56:52ID:???
Perlの外からやった方が速い。
指定時間CPU私有したらKillとか
0439nobodyさん04/10/26 17:58:22ID:1e7srzTI
落としたらやばいレンタルサーバーで使いたいんです
0440nobodyさん04/10/26 18:14:05ID:???
自分のマシンで動作確認してから使えよ
0441nobodyさん04/10/26 18:17:07ID:???
CGI:Carpは使っているよな?
0442nobodyさん04/10/26 18:54:37ID:???
広島?
0443nobodyさん04/10/26 20:28:08ID:MHz0RVYO
>>435,436
お返事ありがとうございます。

速度的な問題でNEWSサイトの記事を並列アクセスでGETしたいんですよ。
今度はLWP::Para::UserAgentっていうのを見つけたんですが
またわかりませんw
LWP::UserAgentを参考にしろとあったのですが、わかりませんw
0444nobodyさん04/10/26 20:28:48ID:MHz0RVYO
sub getLinkDocument()
{
$SIG{ALRM} = sub {die "timeout"};
my $url =$_[0];
$| = 1;

my $link_agent = LWP::UserAgent->new();
$link_agent->agent("robovie/v0.99 ooie");
my $request = HTTP::Request->new(GET => $url);

my $link_content="";

eval{
alarm(10);
my $response = $link_agent->request($request);
if($response->is_error()){
printf " %s\n" , $response->status_line;
}
else{
$link_content = $response->content();
}
alarm(0);
};
#print $link_content;
return jcode($link_content)->euc;
}
書き換えお願いします。。。
0445nobodyさん04/10/30 16:39:05ID:N1vJ8kvj
444です。

なんだかんだで、ソケットを分割してパラレルアクセスできる関数を
作ることができました!
板汚しすみません。
0446nobodyさん04/11/17 00:47:02ID:eDG30weT
モジュールが使いこなせたらと思っているのですが、
どのモジュールがどんな使い方ができるのか、を全体的に知る方法はないでしょうか。
何かをするときにわざわざ調べるんじゃなくて、知っておきたいのですが。
0447nobodyさん04/11/17 03:21:21ID:???
>>446
一覧見ればなんとなくわかるだろ
0448nobodyさん04/11/17 20:22:00ID:???
Unicode::JapaneseとJcodeってどっちがいいんだろ。。
0449nobodyさん04/11/18 01:21:04ID:???
JEncode
0450nobodyさん04/11/19 00:20:32ID:NL+qMdTZ
Imagemagickの質問です。

以下、最小構成のサンプルコードです。

■問題までの過程
1.FTPできれいな画像をあげた。
2.$i->Readした。
3.何もしないで同じ場所に$i->Writeした。
4.画像のパーミッションは666!

■問題
画像の終わりのほうがグレーになる。

■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■■■■■■■■■■■■□□□□

↑みたいな感じ。

#!/usr/bin/perl

use strict;
use Image::Magick;

my $i = Image::Magick->new;
$i->Read("/home/www/hoge/html/$mode.jpg");
$i->Write("jpeg:/home/www/hoge/html/$mode.jpg");

なんでぇ?偉い人教えてください。バージョンは最新。OSは赤帽。
0451nobodyさん04/11/19 06:07:19ID:???
>>448
俺はJcode使ってるけど
UTF8ではおかしいらしいから
UTF8使うときはEncodeかな
0452nobodyさん04/11/19 20:09:42ID:???
>>450
ImageMagicのconvertを使って変換しても同じ結果になるの?
0453nobodyさん04/12/03 15:52:45ID:???
ImageMagick(PerlMagick)で縮小したGIF動画にかなりノイズが入ります。
GIF動画の場合に特別な処理ってありますか?
$width = 120;
Scale(geometry=>$width);
という具合に縮小してます。
0454nobodyさん04/12/04 00:14:44ID:???
>>453
ドキュメント読めバカ
geometryの指定の仕方が待ちガッ取る
0455nobodyさん04/12/07 01:55:48ID:???
あ、>>453の表記を間違えてました。
90x120とかを指定してます。
0456nobodyさん04/12/07 21:21:20ID:???
ImageMagickでgifアニメは圧縮するとノイズ出るよ。
出ない場合もあるかもしれんが。
0457nobodyさん04/12/17 12:42:18ID:???
Perl5.8を入れたんだがDB_Fileって使えるよね?
全くPPMが通らないのは何でだろう。。。。
0458nobodyさん04/12/17 12:54:33ID:PMBOtGAD
あげます
0459nobodyさん04/12/17 18:05:00ID:???
ppm searchしたら出てきたよ>DB_File
ppmの設定がおかしいんでは?
0460nobodyさん04/12/17 22:11:49ID:LkZWkPCw
>>459
確かにサーチすると見当たるのですが、、、、
インストールに失敗してしまいます。
どうも バージョンに適応しないと判断された という趣旨のエラーメッセージがでるのですが
Activestateで見てみるとPassにはなっているのですよね。
原因がさっぱり分かりません。
モジュールを直に落としてインストールする方法でも同じエラーでダメでした、、、

環境はActivePerl 5.8.4、Windows2000SP4です。
0461nobodyさん04/12/17 23:11:36ID:???
問題なくインストールできるよ。
レポジトリが5.6.x用になってたりしない?
旧版からバージョン上げたりするとありがちな気がする。

ppm> rep desc

で何が出る?

0462nobodyさん04/12/18 00:22:47ID:???
>>461
返答ありがとうございます。
試したいのですが自宅に戻ってしまって試せません。
明日にでも試してみようと思います。

ちなみに自宅で同様のことをやったら、今度は成功しました、、、、、
何なんだろう。
環境の違いはプロキシぐらいなのですが、、、、(http_proxyは設定済みです)
0463457=46204/12/18 12:14:00ID:j91tTSrD
やってみました。

ppm> rep desc
Describing Active Repository 1:
 Name: ActiveState PPM2 Repository
Location: http://ppm.ActiveState.com/cgibin/PPM/ppmserver.pl?urn:/PPMServer
 Type: PPMServer 2.0

こんな感じでした。
0464nobodyさん04/12/18 12:41:30ID:???
やっぱり違うトコっぽい。
Perl5.8.xなら

Name: ActiveState PPM2 Repository
Location:
http://ppm.ActiveState.com/cgibin/PPM/ppmserver-5.8-windows.pl?urn:/PPMServer
Type: PPMServer 2.0

か、

Name: ActiveState Package Repository
Location:
http://ppm.ActiveState.com/PPM/ppmserver-5.8-windows.plex?urn:/PPM/Server/SQL
Type: PPMServer 3.0

だったかと。

レポジトリを上記に修正してみてちょ。
0465457=46204/12/18 12:55:09ID:???
ええと、散々騒いだ挙句、一応インストールには成功しました。

http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/
ここからDB_Fileのものをダウンロードして解凍、ローカルとしてレポジトリに追加し、
”既存のレポジトリ(ActiveState)をオフにして” インストールしたら成功しました。

上位のレポジトリで失敗したら下位のレポジトリへ…とはいかないのですね。
しかしながら、オンラインで直接インストールには依然として失敗してしまいます。
なんなんだろう、、、
0466nobodyさん04/12/18 12:59:38ID:???
おおっと、ちんたら書き込んでたら遅れてしまいました。

>>464
そちらのURLを追加して再びやってみたところ、正常にインストールできました。
素晴らしい!
ありがとうございました。これにて完全解決です。
0467nobodyさん04/12/19 15:59:33ID:oCulOE0F
GDモジュールを利用してMySQLからデータを取ってきて、グラフを表示する
CGIを作成しているのですが、グラフに日本語表示ができずにハマっています
set_xlabel_font('/usr/share/fonts/truetype/kochi/kochi-gothic.ttf',12)
こんな感じで指定してやっても表示できません・・・ 助けてください。




0468nobodyさん04/12/21 01:29:38ID:???
freetype2は?
0469nobodyさん04/12/21 02:27:24ID:???
http://naoya.dyndns.org/~naoya/mt/archives/001503.html
Class::DBI のパフォーマンスを上げる Class::DBI::Plugin::Iterator
0470nobodyさん04/12/27 18:41:08ID:WjDOje5i
もしかするとエンコードの問題なのかもしれませんが、
こちらで質問させていただきます。

ActivePerl v5.8.6にて、
「LWP::Simple」で取得したソースから「HTML::TableExtract」を使用して、
テーブルの文字列を取得しようとしてます。

=�@==========================================
use LWP::Simple;
use HTML::TableExtract;
require 'jcode.pl';

$url = "http://xxx.com/";
$html_file = get($url) or die "$!\n";
jcode::convert(\$html_file,'sjis','euc');
=�A=========================================
use LWP::Simple;
use HTML::TableExtract;
use Encode;
use encoding 'shiftjis';
binmode(STDERR, ':raw :encoding(shiftjis)');

$url = "http://xxx.com/";
$html_file = get($url) or die "$!\n";
$html_file = decode('euc-jp', $html_file);
============================================
�@、�Aのパターンとも、$html_fileは正常に表示されます。
047147004/12/27 18:43:27ID:WjDOje5i
この$html_fileを
=�B==========================================
$table_extract =
 HTML::TableExtract->new(
  headers => [qw(ああ いい うう)]);
$table_extract->parse($html_file);
foreach $table ($table_extract->table_states) {
 foreach $cols ($table_extract->rows) {
  print "@$cols[0] @$cols[1] @$cols[2]\n";}}
===============================================
�Bに流すと、�@の$html_fileについては正常にテーブルの値が取り出せるのですが、
�Aの$html_fileについては
Malformed UTF-8 character (unexpected non-continuation byte 0x00, immediately after start byte 0xef) in pattern match (m//) at c:/Perl/lib/HTML/TableExtract.pm line 920.
Malformed UTF-8 character (unexpected continuation byte 0xbf, with no preceding start byte) in pattern match (m//) at c:/Perl/lib/HTML/TableExtract.pm line 920.
というメッセージが大量に出現してしまいます。

�@については「headers」部に「ー」が入っていると、
Unmatched [ in regex; marked by <-- HERE in m/
が出てしまうので、�Aの方法でやりたいと考えてます。

この解決方法を教えていただけませんでしょうか。
よろしくお願いします。
0472nobodyさん04/12/27 20:01:32ID:alR6olXT
ローカルでperlをインストールし、あるプログラムを実行してあるデータを出力すると「ポ」が半角文字と改行に変わってしまいます。
パールのバージョンを古いのから新しいのまで色々試してみたのですが、結果は同じでした。
ところが、他の人のPCで同じ条件で試して見ると半角文字が文字化け改行せず、正常に出力されます。
これは何が原因と考えられますか?

他人のPCの場合の出力結果(正しい結果):
1.合計
2.現在のポイント
3.通算順位

自分のPCの場合の出力結果:
1.合計
2.現在の・
イント
3.通算順位
0473nobodyさん04/12/27 20:23:09ID:???
>>471
3はスクリプト中に日本語が埋め込まれているようだが、スクリプト自体の文字コードは何?
あと、こちらの事情で恐縮だが、丸数字は使わないでくれると有難い。

>>472
常識的に考えて「あるプログラム」が原因なのは間違い無いように思える。
なお「これって Perl モジュールの質問なのか?」という点も疑問に思ったことを付け加えておこう。
047447004/12/27 21:22:00ID:???
>473
>丸数字は使わないでくれると有難い。
大変失礼致しました。
スクリプト自体の文字コードはWindowsなので"shiftjis"です。
ちなみに、取得したいURLの文字コードは"euc-jp"で、日本語ページです。
0475nobodyさん04/12/27 23:17:27ID:???
>>470
1の方法で、headersの文字列にquotemetaかければいいんじゃないの?
0476nobodyさん04/12/28 22:37:32ID:???
>>470
2だと decode('euc-jp',$html_file) した時点で utf8 フラグが立って、
Extract.pm の 920 行目で utf8 フラグの立った文字列を sjis でパターンマッチさせようとして
それでエラーが出るのだと思う。

headers に sjis を入れるのではなく utf8 を入れる、
例えば qw(ああ いい うう) をいったん utf8 に直してから headers に入れるとか、
あるいはスクリプト全体を utf8 で書いてしまうとか、というのはどうだろう。
047747004/12/29 19:50:47ID:???
>> 475,476
回答ありがとうございます。
当方、スキル不足のため、
今だその設定の方法も試せていない状況です。

 ttp://homepage1.nifty.com/nomenclator/perl/unicode.htm
 ttp://naoya.dyndns.org/~naoya/mt/archives/000611.html

あたりが参考になりそうですので、チャレンジしてみます。
0478nobodyさん05/01/09 09:00:46ID:???
HTMLで100人単位のトーナメント表を作りたいのですが、トーナメント表を生成するモジュールと言うのはあるのでしょうか。
0479nobodyさん05/01/12 16:09:48ID:???
CGI::Sessionについて質問です。
http://perldoc.jp/docs/modules/CGI-Session-3.11/Tutorial.pod
http://perldoc.jp/docs/modules/CGI-Session-3.11/Session.pod
今この二つを読みながら実際に動作テストしていますが、セッションデータは
一体どこにファイルが作られているのでしょうか?

my $session = new CGI::Session(undef,undef,{Directory=>"/tmp"});

で初期化して$session->id();でセッションIDを見たりなどはチュートリアルに
わかりやすく書いてありますが、どこのディレクトリになんていう名前のファイルが作られている
のかがわかりません。

apacheを使っていて、cgi-bin内にtest.cgiを作りそこで動作テストしてます。
cgi-binの中に作られていると思ったらありませんでした。

初歩的な質問ですみませんが宜しくお願いしますm(_ _)m
0480nobodyさん05/01/12 16:59:40ID:???
>>479
Directory=>"/tmp"
048148005/01/13 09:07:23ID:???
>>480
どこが起点になっているのでしょうか?test.cgiが置いてあるディレクトリにはtmpと
名前が付くものはありませんが・・・・・
0482nobodyさん05/01/13 12:21:52ID:???
>>481
そらルートの直下のtmpだろ。
/tmpだし。
……釣り?
048347905/01/13 12:42:59ID:???
>>482
ルートとはapacheに設定してあるルートディレクトリですよね。
しかしパソコン内にあるファイル・フォルダ全てをtmpで検索しても
gimp2.2やウイルスバスターなどのtmpフォルダしか出てきませんでした。
なのでやはりどこにも存在してないんだと思います。

これはバグでしょうか?それとも自分でその場所に手動でディレクトリを作ってあげないと
いけないのでしょうか?

確かにセッションのテストをしていても何故かうまくいきません。
ファイルが作られていないという感じです。
ちょっと自分のPCに入ってるapacheのルート設定がどうなってるか調べて
手動でtmpフォルダを作ってみます。

ヒントありがとうございましたm(_ _)m
048447905/01/13 12:50:37ID:???
とりあえずServerRootとDocumentRootにtmpフォルダを作成しましたが
CGI処理後にファイルが新たに作られてはいませんでした。
関係ありそうなところにはtmpフォルダを作成しましたが効果なしです・・・・

何が原因なのでしょうか?一応test.cgiの中身をあげます。
048547905/01/13 12:53:46ID:???
#!/usr/bin/perl
#京
use strict;
use CGI::Session;
my $session = new CGI::Session(undef,$ENV{'QUERY_STRING'},{Directory=>'/tmp'});
if ( !$ENV{'QUERY_STRING'} ) {
$session->param(-name=>"test" ,-value=>"ok");
}
my $id = $session->id();

print "content-type:text/html;charset=euc-jp;\n";
print "\n";
print $id."<br>".$session->param("test");
print qq|<br><br><a href="test.cgi?$id">テスト</a>|;
■ このスレッドは過去ログ倉庫に格納されています