Perlコーディング初心者質問スレ Part 39
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/11/27 11:35:03ID:DJwiGeFM【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0313JAPU
04/12/13 03:47:58ID:???Perlの正規表現では繰り返し("*", "+") を指定するとなるべく長くマッチしようとします。
なので,
1. "*?", "+?" などの最短マッチ
2. [^<]* のように文字を限定
のいずれかを使用する必要があります。
寝よう…
0314nobodyさん
04/12/13 10:17:09ID:???use Net::SMTP;
$smtp = Net::SMTP->new('mailhost');
$smtp->mail($usr);
$smtp->to('postmaster');
などと記述しますが、
この場合の$smtpというのはインスタンスのようなもので、
上記の場合のmailやtoというのは、引数を指定した関数呼び出しということでしょうか?
0315nobodyさん
04/12/13 10:30:32ID:???この場合だとSMPT.pmな
サブルーチンでmailとかtoとかdatasendとかあるから
0316309
04/12/13 11:10:21ID:rJW07thIコピペでやってみましたができませんでした。
検索対象の文字コードと、検索語句の文字コードはどちらもsjis。
出力して確認してみたのですが、
双方とも同じ文字列かつ、同じ文字コードであるにも関わらずパターンマッチしません。
関係あるか分かりませんが・・・
検索対象の文字列はサーバー側に保存してあるデータを取り出し、
それをsplitで区切って準備しています。
その文字列は保存する際にsjisに変換して保存しています。
検索語句の文字列はブラウザから入力された文字列をCGI内部でデコードし、
jcode.plを使用してsjisに変換しています。
0318309
04/12/13 13:32:52ID:rJW07thIこれです。
最小コードで、コマンドラインから確認しました。
#!C:/perl/bin/perl
require "jcode.pl";
$word="変数の型";
$s="型";
&jcode::convert($word,"sjis");
&jcode::convert($s,"sjis");
$sjis=q{
[\x00-\x7f]|[\xa0-\xdf]|
[\x81-\x9f\xe0-\xfe][\x40-\x7e\x80-\xfc] };
########マッチするかどうか
if ($word=~/(?:$sjis)*?$s/){
print"OK\n";
}else{
print"NG\n";
}
exit;
0319nobodyさん
04/12/13 15:32:49ID:???(?:[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])
ではないかと。
0320nobodyさん
04/12/13 16:29:18ID:hnMBax6Xsendmailでつまづいております。
if (!open(MAIL,"| $sendmail -t $to")) { return(1); }
ユーザが入力したメールアドレス($to)に不正なアドレスが
入力されるとsendmailでエラーを吐いて、落ちてしまいます。
(Invalid host name・・・・)
メールアドレスを正規表現を使って全てチェックするのが
困難なのでsendmailのエラーをキャッチしたいのですが
無理なのでしょうか?
0321nobodyさん
04/12/13 16:58:37ID:???0323nobodyさん
04/12/13 17:37:37ID:???ありがとうございます。
携帯(docomo等)でも受け付けるため Email::Valid::Loose
を使用するということまではわかりました。
少し試してみます。
0324nobodyさん
04/12/13 17:39:15ID:???ところで・・・sendmailのエラーをそのまま
キャッチする方法はないのですか?
無いなら、無いで結構です。
調べてもなかったので気になったもので・・・。
0325nobodyさん
04/12/13 18:04:58ID:???MySQLが使えるレンタル鯖を借りてMySQLを使用する
ショッピングカートのCGIを設置したのですが、まったく動きません。
レンタル鯖のサポートへ確認したところ
「うちの鯖はMySQL+PHPだけのサポートでPerlからのMySQL操作はサポートしていません。」
と言われましたorz
んで、色々と調べたところDBI.pmやDB.pm、mysql.pmとかをCGIファイルと同じ場所に置いて
requireで呼び出せば use DBI が使用できるというようなことがわかったのですが、
それを呼び出してもやっぱりエラーが出て使用出来ませんでした。
require "./DBI.pm";
require ",/DB.pm";
require "./mysql.pm";
use DBI;
としているのですが、他に必要なモジュールがありましたら教えて下さいm(_ _)m
ちなみにDBIを使用しないCGIは正常に動作しています。
ショッピングカートCGIも、ローカルPCのWin環境での動作確認はOKでした。
結構高いお金払ってるのでなんとかこのレンタル鯖でCGI-MySQLを動かしたいのです。
どうしようもなければPerlでMySQLの操作をサポートしているレンタル鯖へ乗り換えますが・・・
レンタル鯖の仕様は
Sun Cobalt RaQ550 / Linux
Apache(バージョン不明)
Perl 5.6.1
Mysql 3.23.56
です。
宜しくお願いしますm(_ _)m
0326nobodyさん
04/12/13 18:15:35ID:???DBI だけでなく DBD::mysql が必要。
ただし DBD::mysql は xs モジュールなので、mysql.pm を置くだけでは動かない。
make する作業が必要 (Cコンパイラ必須)。
0327nobodyさん
04/12/13 18:19:59ID:???>>321 が答えているし、公式ドキュメントの FAQ にも書かれている。
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq8.html#How_can_I_capture_STDERR_from_an
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq8.html#How_can_I_capture_STDERR_from_an
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq8.html#Why_doesn_t_open_return_an_err
>>325
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlmod.html#Perl_Modules
http://homepage3.nifty.com/hippo2000/perltips/module_install.htm
0329325
04/12/13 18:33:18ID:???回答ありがとうございます。
DBD::mysqlのコンパイルにチャレンジしてみます。
ちなみにCPANからのモジュールインストールはやってみたんですが、
「モジュールインストールは許可していません」ってレンタル鯖業者から怒られましたorz
0331nobodyさん
04/12/13 20:21:11ID:???if ($word =~ /(?:$sjis)*?\Q$s\E/){
クォートメタを忘れずに。
型は\x8c\x5eというコード。
\x5eこと"^"は正規表現の先頭にマッチだから、
マッチすることなく常にNGとなる。
>>54-58あたりを参照。
0332nobodyさん
04/12/13 23:51:01ID:a6u3bRjNスクリプトがMySQLサーバに送信するデータの漢字コードってどうやって決まるの?
多分MySQLサーバに接続するときに、このキャラクタセットを使いますよって言ってる
と思うんですけど、そのキャラクタセットはどうやって決められてる?
0333nobodyさん
04/12/14 06:27:56ID:???http://dev.mysql.com/doc/mysql/ja/Charset-connection.html
以後、MySQL の質問は DB 板へ。 http://pc5.2ch.net/db/
少なくとも Perl::DBI スレへ。 http://pc5.2ch.net/test/read.cgi/php/1015943725/
0334nobodyさん
04/12/14 07:07:42ID:???$num = "20041214";
$num =~ s/[\x82]//g;
$num =~ tr/O-X/0-9/;
こういうのって何か問題あったりしますか?
0x82はSJISの2バイト目にも現れないようなのですが、他にいい方法があったりしますかね。
0336nobodyさん
04/12/14 09:23:02ID:???&jcode::tr (\$value, "0123456789", "0-9");
これで動かない?
0337nobodyさん
04/12/14 12:41:51ID:???$numがSJISの数字のみからなる文字列と保証できるなら
それでいけるだろう。
でもSJISは何かとperlでは扱いにくいので避けたほうが
いいと思うけどな。入り口出口で変換して内部はEUCが
楽だと思う。
unicodeが日本語についてあんなに変じゃなけりゃ5.8
以降でunicode使うともっと楽だったんだろうけどね。
0338nobodyさん
04/12/14 14:14:33ID:XUzVLI8W=========================
・・・・・・・・
・・・・・・・・
open(OUT,">> log.csv");
print(OUT "$count\n");
close(OUT);
exit;
=========================
のような感じでログを出力するスクリプトを作成しました。
しかし、コンソールから直接起動すると正常に出力が完了するのですが、( # /フルパス/script.pl )
同じコマンドをcronにて実行すると、上記の出力の部分のみが実行されません。
(上記の出力部 以前は実行されます)
この原因として何が考えられますでしょうか?
ちなみに、コンソール、cronともrootで実行しており、
出力先フォルダ、出力ファイル(log.csv)の所有者名・グループ名はともに「root」
実行ファイル(script.pl)の権限は「755」、出力ファイル(log.csv)は「644」です。
スクリプトに問題がありそうということでしたら、
詳細の内容を記載させていただきます。
よろしくお願いします。
0339nobodyさん
04/12/14 14:22:22ID:???0340338
04/12/14 14:26:55ID:XUzVLI8W上の書込みでは 「 /フルパス/script.pl 」のように書いてしまいましたが、
実際に起動してるコマンドは以下です。
( script.sh から script.pl を読込み )
「/フルパス/script.sh」
コンソールからは正常に動作しcronでは実行されない現象は、
1.「/フルパス/script.pl 引数1 引数2」
2.「/フルパス/script.sh」
1,2 のどちらのコマンドでも発生します。
また、script.shの権限も「755」です。
■crontab の内容(毎時5分に実行)
5 * * * * /フルパス/script.sh
■script.sh の内容
/フルパス/script.pl 引数1 引数2
/フルパス/script.pl 引数1 引数2
/フルパス/script.pl 引数1 引数2
・・・
・・・(全20行)
なんかPerlの質問じゃないみたいになってしまいました、すいません
0341338
04/12/14 14:30:57ID:XUzVLI8W所有者(root)の書込み権限があれば良いと思い
「-rw-r--r--」
と設定してます
0342nobodyさん
04/12/14 14:47:00ID:???1. 実行権限に問題は無いか
2. スクリプトや入出力先をカレントからの相対パスで指定していないか
0344nobodyさん
04/12/14 15:00:03ID:???0345338
04/12/14 15:06:20ID:XUzVLI8W解決しました!
> 2. スクリプトや入出力先をカレントからの相対パスで指定していないか
が原因でした。
open(OUT,">> log.csv"); の部分を
open(OUT,">> /フルパス/log.csv");
とすることで目的の動作を行うことができました。
基本的なミスで、板汚し申し訳ございませんでした。
でもとても参考になりました。ありがとう!
0346nobodyさん
04/12/14 15:41:30ID:???- - - - - ここまでは、ご覧の釣堀の提供でお送り致しました - - - - -
0347nobodyさん
04/12/14 16:09:00ID:???0348nobodyさん
04/12/14 18:58:59ID:???文字列に数字以外が混じると嫌だから、もうちょっと安全に書くかな。
(規格上は\x82も2バイト目に含まれるから、頭からかじらないとダメなんだけど…。)
my %z2h_num;
@z2h_num{qw(0 1 2 3 4 5 6 7 8 9)} = (0..9);
my $num = "20041214";
$num =~ s/(\x82[\x4f-\x58])/$z2h_num{$1}/g;
元の仕様のままでいいなら、
$num =~ tr/O-X\x82/0-9/d;
とかが効率良さそう。
0349nobodyさん
04/12/15 00:07:10ID:8kSVNViR場合に文字化けしてしまいます。
この場合に、文字化けしたかどうかを調べるにはどのようにしたら良いのでしょうか?
0350nobodyさん
04/12/15 09:24:08ID:3pwV+643クラス(と言っていいのかな)の要素に配列を含めるとうまく動きません。
下のコードだと配列の 0 番目しか認識できませんでした。
どこが間違っているかわかりますか。
ってか、そもそも要素に配列を含めること自体は可能なことなんでしょうか。
package Test;
sub new
{
my $this=shift;
my @list=(9,8,7);
my $test={
"list" => @list
};
bless $test,$this;
return $test;
}
package main;
$test=new Test();
print "test->list[0]=",($test->{list})[0],"\n";
print "test->list[1]=",($test->{list})[1],"\n";
print "test->list[2]=",($test->{list})[2],"\n";
0351nobodyさん
04/12/15 09:29:58ID:8kSVNViR0352350
04/12/15 10:02:46ID:3pwV+643解決しました!ありがとうございます!
すみませんがもうひとつ質問させてください。
package Test;
sub new
{
my $this=shift;
my @list=(9,8,7);
my $test={
"list" => \@list
};
bless $test,$this;
return $test;
}
sub set
{
my $this=shift;
# @$this->{list}=localtime(); #←だめぽ
my @t=localtime();
$this->{list}=\@t;
}
set っていう関数の中で list の中身を localtime に入れ替えたかったのですが
「だめぽ」の行だと「Not an ARRAY reference」と言われ失敗したので、
その下の2行にしたらうまくいきました。
配列をまるごと入れ替える場合はこうやって2行にするしか方法がないのでしょうか。
もうちょっとスマートな定番の方法があったら教えてください。
0353nobodyさん
04/12/15 10:28:54ID:???@{$this->{list}} = localtime();
これと352の下の2行は意味が違うのに注意。これは
$this->{list}に入っているリファレンスが示す配列の
中身を置き換えるが、352の方法では$this->{list}を
新しく作った配列へのリファレンスで置き換えること
になる。
0354350=352
04/12/15 11:13:34ID:3pwV+643ああ、なるほど。意味はわかっていました。
中身を書き換えたかったんです。リファレンスの置き換えは苦肉の策でした。
自分では、
@($this->{list}) = localtime();
ってのも試してましたがエラー。カッコの種類が違ったんですね…。
ありがとうございました!ほんと助かりましたです。
0355nobodyさん
04/12/15 11:49:23ID:???0356nobodyさん
04/12/15 13:02:39ID:???の最後の全角スペースがどうやら引っかかっていない
みたいなのですが、全角文字は違った表記で書かなくては
ならないのでしょうか。
ご教授いただけると有難い次第です。
0359nobodyさん
04/12/15 17:17:16ID:???それもあるが、1バイトずれてマッチすることもあるから
注意してね。
たとえば$testの値が「a@」なんてときは(?:\x81\x40)に
マッチしちゃうよ。(「a@」は"\x82\x81\40"なので。)
ttp://www.din.or.jp/~ohzaki/perl.htm#JP_Match
0360nobodyさん
04/12/15 20:07:39ID:M/kRzQtl引数のデータとログ中の一致するデータを表示する物です。
ページ送りがあるので配列の行数を得たいので
読み込んだログを配列に入れたいのですが、ここで悩んでます。
100KBのログの読み込みを250回繰り返した結果です。
1番目 2.6秒
open(FL, "パス");
while(<FL>){
push(@dump, $_);
}
close(FL);
2番目 4.3秒
open(FL, "パス");
@dump = <FL>;
close(FL);
上記の様になりました。
1行ずつ処理すると軽いといいますが、
1番目の物でも1行ずつ処理している事になっているのでしょうか?
いったん全て読み込む必要のある物は1番だと手順が増えて
2番の方がよさそうに見えていたのですが。
現在、ローカルでしかテストできる環境がないため、
実動作でも有効なのでしょうかご教授下さい。
0362nobodyさん
04/12/15 20:51:19ID:???> 実動作でも有効なのでしょうかご教授下さい。
(´-`).。oO(何のためのローカルテストなんだろう)
0363nobodyさん
04/12/15 20:58:10ID:???0364nobodyさん
04/12/15 21:55:29ID:tOkXdbQQ#!/usr/bin/perl
require './jcode.pl';
print qq(Content-type:text/plain\n\n);
print qq(OK);
exit;
では、きちんとOKと表示されるのに
#!/usr/bin/perl
use Jcode;
print qq(Content-type:text/plain\n\n);
print qq(OK);
exit;
だと「'c:\www\test.cgi' script produced no output」
と表示されてしまいます。何か考えられる原因を教えてください。
perl.plとperl.pmは同じ階層に置いてあります。
環境はWindow2000,ActivePerl5.8.4,AN HTTP1.42nです。
0365nobodyさん
04/12/15 22:17:01ID:???私のところでは問題ないけど。
二行目にこれを入れてみそ。
use CGI::Carp qw(fatalsToBrowser);
0366nobodyさん
04/12/15 22:18:04ID:???sjisという話ですが、実際はWindows code page 932(cp932)使ってませんか?
ttp://www2d.biglobe.ne.jp/~msyk/charcode/cp932/Windows-31J-charset.html
文字化けするのは、IBM拡張文字じゃないかと思います。
from_to("cp932", "euc-jp")で、変換できない文字は諦めるとして、
変換できない文字は'?'に置き換えられるので、そこをチェックするとか。
予め、変換できない文字のテーブルを作るのもいいかも。
EncodeモジュールはUnicodeを介して変換しているようで、
Unicodeに無い文字は変換できないようです。
直接計算で変換するjcode.plやJcode.pmを使えば89区から92区は
変換できるようです。
0367364
04/12/15 22:39:07ID:???回答ありがとございます。
2行目という事は↓こんな感じで良いんですよね?
#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use Jcode;
print qq(Content-type:text/plain\n\n);
print qq(OK);
exit;
↓こんなエラーが出ました(T_T)
Software error:
Can't locate Jcode/Constants.pm in @INC (@INC contains: c:/Perl/lib c:/Perl/site/lib .) at Jcode.pm line 61.
BEGIN failed--compilation aborted at Jcode.pm line 61.
Compilation failed in require at C:\www\test.cgi line 4.
BEGIN failed--compilation aborted at C:\www\test.cgi line 4.
0369364
04/12/15 22:53:50ID:???ごめんなさい。ちゃんとインストールされてませんでした。
ご迷惑をおかけしました。
…ところで、*.pmを扱うのは初めてなのですが
*.plの場合は*.cgiがあるディレクトリに置いておくだけで
動作しましたが、*.pmの場合はインストールしないと
動作しないのでしょうか?
無料ホスティングサービス等を利用する場合に
自分が希望する*.pmが無い場合は、どうすれば良いのでしょう?
0371364
04/12/15 23:06:50ID:???なるほど、鯖管じゃないと*.pmのインストールは
できない訳ですね。>>329-330等を見てる限り
自分の望む*.pmが、鯖にインストールされて
なければ、使えないって考えた方が良さそうですね…
色々とありがとうごさいました。
0374nobodyさん
04/12/15 23:39:27ID:???アーカイブの中身で必要・不要の判断がつかないなら全部そのままサーバの好きな場所にぶち込め。
で、use lib "ぶち込んだディレクトリ";とやってからuse Jcode;だ。
0376nobodyさん
04/12/16 00:14:20ID:jXnHIVD70377nobodyさん
04/12/16 01:29:55ID:B5pcTDRphtmlに表示したいのですが、
その際常に10番目には同じ文字列を表示させたいのです
どのように書けばいいのでしょうか
0382nobodyさん
04/12/16 13:56:27ID:???2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
0383nobodyさん
04/12/16 14:55:31ID:kPNHSAIcセキュリティ上何に気をつけたらいいですか?漠然としていてすいません。
とりあえずtaintモードで、use re 'eval'は宣言してません。
0385nobodyさん
04/12/16 16:35:35ID:ZCA0MXpEなるほど、それはまったく考えてませんでした。
バックトラックを大量に発生させる正規表現の検出なんて
思いつきません_| ̄|○
自鯖なので、ちょっとの負荷ぐらいならいいのですが、
タイムアウトさせることにします。
0386nobodyさん
04/12/17 09:17:36ID:???CGI::Sessionはセッションの有効期限があり、有効期限を
過ぎるとエラーになるまでは良いのですが、有効期限が
切れたセッションデータ(ファイル)がディレクトリに無限に
溜まっていきます。
ユーザーがログアウトするなりして、セッションを閉じれば
消えるのですが、ブラウザを閉じられたりするとセッション
を消すタイミングがわかりません。
これらの有効期限切れのセッションデータは、どのように
して削除すれば良いのでしょうか?
0388nobodyさん
04/12/17 11:00:46ID:???ありがとうございます。
…しかし、ファイルが消えてくれません。
use CGI::Session::ExpireSessions;
CGI::Session::ExpireSessions->new(temp_dir=>'./session', verbose=>1)->expire_file_sessions();
↑こんな感じで消そうとしてるのですが…。
作る側は↓こんな感じなのですが。
my $session = CGI::Session->new(undef,undef,{Directory=>'./session'});
$session->expire('+1m');
$session->param( 'id', $id );
どこか、間違ってる所はあるでしょうか?
0389nobodyさん
04/12/17 11:12:36ID:???examplesにある例もそんな感じだから、動きそうなもんだけどね。
verboseを1にしてるからなんかメッセージでてないすか?
ありがちな間違いとしては、カレントディレクトリが適当でない
(temp_dirが相対パスなので)か、実行するユーザが適当でない
あたりかと。
0390nobodyさん
04/12/17 11:27:29ID:???ごめんなさい。消えました。
原因はセッションファイルの頭に付く'cgisess_'を
変更してた為でした。ExpireSessions.pmの中の
'cgisess_'を同じように変更したら、うまく動きました。
どうもご迷惑をおかけしました。
0391nobodyさん
04/12/17 15:54:21ID:???ループを0〜8と10〜99に分けるとか
ループの中でif分噛ませるとか
配列に入れといてあとから[9]を上書きするとか
0392nobodyさん
04/12/18 00:47:15ID:l7mnvpO6timelocal 内のエラーメッセージを表示させずにエラーを検出し、
自分で定義したエラー処理を行いたいのですが、どうすればいいでしょうか。
0394nobodyさん
04/12/18 06:04:33ID:???my $t = eval{ timelocal(0, 0, 6, 18, 12, 104) };
$@ and print "エラーですな $@";
0395392
04/12/18 16:45:30ID:l7mnvpO6おお!できますたよ。ありがとうございます。
0396nobodyさん
04/12/18 22:25:58ID:Zy8umN1o誕生記念age
0397nobodyさん
04/12/18 22:34:22ID:???0398nobodyさん
04/12/18 23:29:49ID:???. ,,-'''~;;;;;;;;;;;;;;;;;;;;;;~'-_,,,,_
. /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~ヽ,
. /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;ヽ
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,;;;i;l;;;;;;;;;;;;;;;;;;;l
. /;;;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;;;;;;;;/l;;l;l\;;;;;;;;;;;;;;;l
l;;/;;;;;;;;;;;/l;;;;;;;;;;;;;;;;;;/;///l;l \;;;;;;;;;;l
. l;;l;;;;;;;;;;;;/;l;;;;;;;;;;;;;;;;;//// l/ ヽ;;;;;;;;l
l;l;;;;;;_,,,,l- '''''''''~~~''~ ' ~''''''--,, .ll;;;;;;;l
''-l',-'l _,,-'''(~)' '~l~(~),-,_'' l;l;;;;;;l
. l.l l ' l;;;;;;ol .lo;;;;;;l ' /~ヽ;;l
. l;ヽ l ~~~ , ~~~ / ノ;;;l
. .l;;l;;;i~''l ,__, /-i''l;;;;;;l
l;;l;;;l;l;;;;ヽ,_ ./;;;;l;l;l;;;;;;l
. l;;ll;;;l;l;;;;;;;;;l~'''i-,,_ _,,,-i'''~;ll;l;;;;;l;;ll;;;;;;l
l;;ll;;;l;;l;;;;;;;;;ll,/'l ~~ lヽ,_ll;l;;;;l;;;l;;;;;;;l
l;;ll;l;l;;l;;;,-''~ lノ '/ '-,,_;l;;;;l;;;;;;l
. l;/;l,,-'~ l_ _/ ~'-,;l;;;;;l
l,-i~l l l~'' '~/ .//'-,;l
i'l l. l l l ./ .// / 'l
. l. l. ヽヽヽ _,,-'~-l /-'''-,_ /./. / l.l
. l iヽ ヽヽ,''~,---,ヘ,-,ヘ--,,~''-'//.i /,.l
l| lヽl ヽ,_~ヽ ,-/l~lヽ,, /~'',/ .l // l
/l ヽ l /\/.l l l lヽ-'ヽ~'' .l// .l
. /;l ヽl. \ l l l l / l/ l
0399nobodyさん
04/12/18 23:30:21ID:???(⌒\:::::::::/⌒(⌒∨⌒)
( ̄>::( ゚Д゚)<(⌒\:::::::/⌒)
( ̄/:::::::: (_>::( ゚Д゚)::<
/((⌒∨⌒(_/U::U\__)
/ (⌒\::::::::/ (_∧_)`∨⌒) 、@,
<(__>::( ゚Д゚)::<__し//J\::::::/⌒;@@^
|ヽ(_/::::::::\_)(_>::( ゚Д゚).つ|/`
| ヽ. (_∧_) // (_(ノ:::::::\_)
| \し|.|J ////(_∧_)
l `.:7 ̄ ̄ ̄ ̄ ̄/ し"J
ヽ / .:::/
/ ̄ ̄ヽ(,,゚Д゚) ~ ̄ヽ < おめでとうございます!
ヾニニ=/./ハゞ\=ニン
/ / /| |ヽ \
(__ ̄l/__U"U V`"
0400nobodyさん
04/12/20 08:55:27ID:???いや、絶対なんか便利なモジュールがあると思うんですが、ちょっと検索してもスパッとでてこないので……
0402nobodyさん
04/12/20 10:07:18ID:???txtファイルのアドレスを送ってファイルオープンしようとしたら出来ませんでした
アドレス自体は、確認したところちゃんと送られてるようでしたし
ファイルも、送られてくるアドレスでなく、相対パスをいれたら開くことが出来たんですが
urlではファイルのオープンは出来ないのでしょうか?
0404nobodyさん
04/12/20 11:17:15ID:???mod_perl 環境下で Apache::Request の headers_in() を使え
という話になるわけだな
0405nobodyさん
04/12/20 13:25:42ID:???ただ、どうしても生のヘッダ全てが欲しいならしょうが
ないが、CGIでも環境変数経由である程度は情報もらえる
ので、それでなんとかなることもある。
0407400
04/12/20 13:51:18ID:???む、mod_perl必須ですか。mod_phpがなかったのでPerlならと思ってみたんですが……今のレン鯖じゃだめかー
やりたかったのはIf-Modified-Sinceをぶんどることなので環境変数経由じゃダメっぽい。
レスありがとうございました。
0409nobodyさん
04/12/20 15:59:24ID:???次のような状況で、エラーは出ないのですがこれは問題ないのでしょうか。
ご指導下さい。
script.cgiでuse strict;って書いてコーディングを厳格化しています。
そこで、require "library.pl";としてあります。
library.plには、宣言されていない変数が使用されていますが大丈夫でしょうか。
library.plではstrictしていないのでこれは問題ないのでしょうか。
よろしくお願いします。
0410nobodyさん
04/12/20 16:07:28ID:???use strict;でもscript.cgiの記述が対象になるだけで
requireされたライブラリの中身までは見ない。
0411nobodyさん
04/12/20 22:25:10ID:???FTP使えなくてTeraTermからviでコーディングさせられてて、超しんどいです。
できたら予約語ハイライトがあったら嬉しいですが
これよりマシな環境なら何でもいいので、どうかお願いします。m(_ _)m
0412nobodyさん
04/12/20 22:28:11ID:???■ このスレッドは過去ログ倉庫に格納されています