【Perl】初心者コーナー Part16
レス数が900を超えています。1000を超えると表示できなくなるよ。
00013PIO ◆3pIoOHKo
02/09/15 15:11ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/
過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0802nobodyさん
02/10/07 15:34ID:???できたんですが、ファイルに保存しないで、ストリーム
っていうのかな、流れてきた文字列に日本語の単語一語の
検索かけて、それが入ってる文(。から。まで)だけを取
り出すようなことできますか?
よろしくおながいします。
なるほど確かにstatの結果はキャッシュするべきだね。
>>801
まあまあ落ち着きなさいって。
確かにprint <$fh>は好かないけど、
{($date{$a}||=-M $a) <=> ($date{$b}||=-M $b)}
これは問題ないでしょ。一度statしたファイルに対しては二度とstatしないから、
必要最低限のstatしか行わないよ。
CGIスレで質問したってことを一言断った方がいいかも。私は気にしないけどね。
LWPで"getline"相当のことは難しそうなんで、一旦splitするのが無難かなぁ。
my $contents = $res->as_string();
foreach (split /\n/, $contents) # while(<IO>)みたいなもの。ただし改行は含まれない
{
print $_, "\n" if /pattern/;
}
またはIO::Scalarを使うとか。
use IO::Scalar;
tie *SH, IO::Scalar => \$contents;
while (<SH>)
{
print if /pattern/;
}
そんなに急ぎの質問?
皆ボランティアで答えてるんだからもう少し気長に待ってもいいんじゃないのかな。
0808nobodyさん
02/10/07 16:02ID:???どもCGIでレス待ってたんですが途切れちゃったもんで。
いやー、お詳しいですね。2通りのやりかたでやってみる
ことにします。どうもありがとうございました。感謝の
気持ちです。m(_ _)m
/\
/イヨー \
/大統領! \
0810nobodyさん
02/10/07 16:14ID:???よく見てみますと、>>806では、受け取ったHPを$contentsとか
<SH>に格納するんですね。これが大容量になると(例えば100
ファイルとか)、やはりまずいかなーと。大きさはかって制限
すればいいことはいいですが。
漏れが考えてたのは、cat file | grep "string" みたいに、
ストリームで処理できないかなーということだったんです。
それは無理ですか。
0811nobodyさん
02/10/07 16:18ID:???たびたびスレ汚しスマソ。考えてみたら、受け取ったファイル1個
毎に上の処理すればいいので、>>806でできそうです。ありがとう
ございました。
0812787
02/10/07 16:36ID:???いろいろ試してみます。
Perl厨の自己満足オナニーコードですみませんでしたm(__)m
0814nobodyさん
02/10/07 23:24ID:???map { $_->[ 1 ]}
sort { $a->[ 0 ] <=> $b->[ 0 ]}
map{ [ (stat $_)[ 9 ], $_]}
@files;
0815nobodyさん
02/10/07 23:48ID:???を実行した時に、初回だけ、ミラーサイトを選択するメッセージが出ますが、
後から、そのミラーを変更したい場合は ~/.cpan/ 以下のどのファイルの
どのエントリーを変更すればいいのでしょうか?
ほしいファイルが今のミラーにないようで、困っております。
0816nobodyさん
02/10/07 23:50ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0817_gunzip ◆eiH/XdoCNg
02/10/08 01:24ID:???/usr/lib/perl5/5.8.0/CPAN/Config.pm を $HOME/.cpan/CPAN/MyConfig.pm
にコピーし、`perldoc CPAN`の"CONFIGURATION"セクションを参考にしつつ適切に書き換えてください。
0818nobodyさん
02/10/08 13:12ID:???1.---- Unsatisfied dependencies detected during [A/AD/ADIE/Test-Exception-0.12.tar.gz] -----
とエラーがでる
2.Test::Exceptionをmake testして失敗した後、Sub::Uplevelというのを
make testして Test returned status 1 (wstat 256, 0x100)という結果になって
3.再度Test::Exceptionをmake testして
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force
となって終了します。どなたか同じこと経験された方いらっしゃいませんか?
0819nobodyさん
02/10/08 13:55ID:1one6uxb数字が5文字以上続いた場合はどう書けばいいですか。
0821nobodyさん
02/10/08 14:07ID:???[0123456789][0123456789][0123456789][0123456789][0123456789]+
0822nobodyさん
02/10/08 14:23ID:???ありがとうございます。
0823nobodyさん
02/10/08 14:41ID:???[0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]*
0825nobodyさん
02/10/08 16:31ID:???[0123456789][0123456789][0123456789][0123456789][0123456789]+
これは長くて、コードは短いほどいいと思うんですけど、
[0-9]{5,}とどっちが優れてるんですか?
0826nobodyさん
02/10/08 16:44ID:???画像アプローダみたいな物を作りたいのです、
アップロードまではperlでできるというようなことはわかりました。
そのあと、jpgの画像をサーバー内で縮小させたりしたいのですが、
どんなものが必要ですか?
0827nobodyさん
02/10/08 16:51ID:???>>824はネタれす。ネタニマジレス、アリガトン
コンパイルされるときは同じになるんじゃないかな。
省略記法の方が遅くなることえてしてあり。
私はWinだけど、問題なく成功してしまったなぁ…。
とりあえず、OSとPerlのバージョン、何のテストが失敗したか
くらないとアドバイスのしようがないよ。
0830nobodyさん
02/10/08 17:12ID:???すみません。
RedHat7.2
perl5.6
perl -MCPAN -e shellにおいて
install Test::Exception
とした場合に自動実行されるTest::Exceptionのmake testでエラーが出ました。
>>830
いやいや、"エラーが出た"だけじゃなんとも言えないよ。もっと詳しく。
例えば、makeするとこんな感じのログが表示されると思うけど:
C:\Perl5.6\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\li
b', 'blib\arch')" t\caller.t t\documented.t t\Exception.t t\pod.t t\preserve.t t
\return.t t\stacktrace.t
t\caller........ok
t\documented....ok
t\Exception.....ok
t\pod...........ok
t\preserve......ok
t\return........ok
t\stacktrace....ok
All tests successful.
Files=7, Tests=35, 2 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
D:\bin\dmake.exe test -- OK
この中央の"t\*...ok"(Unixだと"t/*...ok")がモジュールのテストだから、
これらのどれが"not ok"となったか、また"not ok"の後ろに何か表示されたか(あれば)、を書いてね。
0832nobodyさん
02/10/08 17:47ID:lB7AvP/OGD.pm
0833nobodyさん
02/10/08 18:30ID:???flintstones => {
series => "flintstones",
nights => [ "monday", "thursday", "friday" ],
members => [
{ name => "fred", role => "husband", age => 36, },
{ name => "wilma", role => "wife", age => 31, },
{ name => "pebbles", role => "kid", age => 4, },
],
},
0834833
02/10/08 18:31ID:???series => "jetsons",
nights => [ "wednesday", "saturday" ],
members => [
{ name => "george", role => "husband", age => 41, },
{ name => "jane", role => "wife", age => 39, },
{ name => "elroy", role => "kid", age => 9, },
],
},
0835833
02/10/08 18:31ID:???series => "simpsons",
nights => [ "monday" ],
members => [
{ name => "homer", role => "husband", age => 34, },
{ name => "marge", role => "wife", age => 37, },
{ name => "bart", role => "kid", age => 11, },
],
},
);
0836833
02/10/08 18:38ID:???保存して、動的にデーター構造を作る方法について、ご相談があります。
具体的には、アンケート調査で得られた、各団体の属性をperlで処理するために
複雑なレコードデータを、一旦テキストファイルに保存する必要があるのですが、
一般的には、このくらいの複雑さであれば、どのような形式でテキストファイルに
保存するのが一般的なのでしょうか(あるいは、この程度の複雑さであれば単純に
○○使うといい、というものでも結構です)。
私は学生ですし、初めてこのような処理を行うため、
社会人で複雑なデータ構造を構築された経験のある方なら、こういう場合、
どのように判断されるのかなと思い、質問させていただきました。
0837nobodyさん
02/10/08 19:10ID:???0839597
02/10/09 02:56ID:???お返事がおくれまいした。おかげさまで、解決いたしました。お手数おかけしました。
すっかり見落としてた……
>うーん。もっとカコイイ方法ないかなあ。
少し内容は変わりますが、
http://www-6.ibm.com/jp/developerworks/linux/011130/j_l-pexcel.html
のexcel-x2.plという例題(Spreadsheet::ParseExcel、Spreadsheet::WriteExcelの例題なのですが)
がすごく参考になりました。
変数を沢山使うのですが、非常に応用できそうなコードだったので、ご紹介しておきます。
0840nobodyさん
02/10/09 13:57ID:???foreach $value (@value){
if($i == 11){
last;
}
print $i\n;
$i++;
}
こうすれば10まで表示したらforeachを抜けますよね?
0841nobodyさん
02/10/09 15:46ID:???10回ループしたら抜けます。つーか、ループさせる回数が決まっているのなら
foreach を@value でまわさずに$iで書いた方がわかりやすいです。
foreach $i (1..10) {
print $i, "\n";
}
で、質問はそれだけなの?
で、それに1つづつリクエストするわけですが、どう考えても重いんです。
50回リクエストするんだから当然と言えば当然だと思うんですけど、ブラウザで50ページ分開くのと同じですよね。
実際CGIを回したら40ページくらい保存したとこでCGIは「このページは表示できません」となりました。
その間、1分30秒くらいでした。こういうのってやっぱりサーバーに負担がかかるんでしょうか。
どっちにしろこのままじゃ途中でタイムアウトしちゃうので半分くらいに分けて
途中でhtmlを吐き出して、「残りの半分をダウンロード」とかいうボタン付けて続きをリクエストしようと思うんですけどこのやり方はどうですか。
0843840
02/10/09 16:50ID:???なるほどそういう書き方もあるのですね。
ありがとうございます。
0844nobodyさん
02/10/09 17:04ID:???ブラウザのタイムアウトかな?ってきがするんですが
1. 1ページ保存する毎になにかprintするようにする。
2. forkして、プロセス切り離してcgiはいったん終了する
3. そのとおりNページ毎に処理をわける
とかが、結構一般的かと、、、
0845nobodyさん
02/10/09 17:37ID:1+Y7R6lCmy $query = new CGI;
my $value = $query->param("text");
$query->header
(
-type=>'text/html; charset=euc-jp'
),
$query->start_html
(
-title=>"値の表示",
-lang=>'ja'
),
$query->h1($value . "の値"),
$query->end_html;
として$valueを取得して表示する場合、
文字コードの扱いはどうなるんでしょう?
自分は、クライアント環境のコードがそのまま
飛んでくるだろうと考えていたのですが、
UNIX上のブラウザから試してもWindows上のブラウザから
試しても化けずに表示されました。
もしかして、CGI.pm は適切に文字コードを変換するところまで
やってくれているのですか?
http://pc.2ch.net/test/read.cgi/php/1032704121/
0847nobodyさん
02/10/09 19:09ID:???そのスレの一番上に
>※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
> ↓
> Perl 初心者コーナー Part16
> http://pc.2ch.net/test/read.cgi/php/1032070299/l50
って書いてあるぞオイ(w
まぁ>>845はどちらかというとCGIの話か。
0848nobodyさん
02/10/10 04:01ID:MdydjVId↑この添付ファイル対応のフォームメールスクリプトを設置してみたんですが、
添付したファイルが(画像でテスト)、ぐちゃぐちゃになって送られてきます。
小さいのだったら、いけるんですが、大きくなると・・・
で、以前どこかで、httpの仕様で、何kbまでしか云々ってのを読んだんですが、
ソレのせいでしょうか?
考えられる理由を教えていただけないでしょうか?
0849nobodyさん
02/10/10 04:46ID:ZvzQ38ZZなっているよ。誰が設定したのか知らんが、設定した人に字数制限
をしているのかどうか聞いてみたら?
もしもそうなら、画像ファイルをテキストにしたメールが制限に引っか
かって後半がちょん切られいるからぐちゃぐちゃになると思う。
あと、「添付した画像がぐちゃぐちゃになる」なんて言われるよりも
画像にする前のテキストがどうなっているのかを言ってくれる方が
対処しやすい。
それとHTTPの仕様で…なんて話はないです。もしも本当に読んだのなら
そのバカライターをここで晒してくれ。友達に聞いたのなら晒さなくてもいい
けど、100%鵜呑みにするべき人じゃないということです。
0850848
02/10/10 08:21ID:Z9fpt7At設定したのは自分です。
>※1 ファイルアップロード可能 字数制限なし(実際は2^17=131072bytes以内)
><form action="form2mail.cgi" method="POST" ENCTYPE="multipart/form-data">
↑これにしたんで、あってると思うんですが・・・
で、送られてきた画像は、gifなら、
おっしゃるとおり、半分くらいが、ちょん切れてます。
jpegなら、パズルでばらばらにされたようになるんですが・・・
これは、圧縮形式の違いで、両方、破損してるのは、間違いないと思います。
>画像にする前のテキスト
この辺が、おっしゃってる意味が、ちょっとわからないんです。
このフォームを使って何か画像を送り、
送る前の画像と、送った後の画像の拡張子を.txtにして、報告しろ
っていう意味でしょうか?(メチャクチャ言ってたら、ゴメンなさい)
>httpの仕様
そうですか、友達に聞いたとかじゃなくて、掲示板かどこかで、
見たんです。(2chだったかも)
おそらく全く別の話か何かだったんでしょう。スイマセン。
0852848
02/10/10 09:15ID:rBn0TZDOmain7.gifを送ったんですが、↓この辺のことでしょうか?
-------------------------------7d238f34a0412
Content-Type: application/octet-stream; name="main7.gif"
Content-Transfer-Encoding: X-uuencode
Content-Disposition: attachment; filename="main7.gif"
begin 644 main7.gif
・
・
・
0854しろうと
02/10/10 11:22ID:rv3sQjTvweb初心者なりにがんばって,アクセス解析用フリーCGIスクリプトのefStat
(ttp://www.skipup.com/~fuka/) というのを設置してみたのですが,アクセス
解析結果の検索ワード欄が文字化けしてしまい,調べてみると,どうも日本語
文字コードを扱うルーチンjcode.plというのが古すぎて,Jcode.pmというのに
変えなければならないということが分かりました.
ところが,闇雲に jcode.pm その他を cgi-bin/fstat/lib/ 下に置き,
fstat.cgi (アクセス解析スクリプト) を実行すると Internal Server Error
になってしまいます.
/usr/local/apache/logs/error_log を見ると,
Can't locate object method "new" via package "Jcode" at lib/start.pl line 62.
Compilation failed in require at /home/****/public_html/cgi-bin/fstat/fstat.cgi line 111.
[Wed Oct 9 15:57:38 2002] [error] [client ***.***.***.***] Premature end of script headers: /home/****/public_html/cgi-bin/fstat/fstat.cgi
こんな感じでした.
サーバはRH Linuxの7.0か7.1程度,Perlのバージョンは5.6.0です.
Jcode.pm利用への手順など,簡単に教えて頂けませんでしょうか?また,サー
バのrootに何かしてもらう必要はありますか?
宜しくお願いします.
0855849
02/10/10 12:02ID:ZvzQ38ZZ画像でもオフィス文書でもメールに添付するときにはMIME BASE64というエンコード
で、テキストに変換しているのです。 Outlook Expressなどのメーラは、そういう生の
データを見る方法があるのかどうなのかしりませんが、
------------92AECG1NXU3WZAT
Content-Type: audio/x-midi;
name=Setup.exe
Content-Transfer-Encoding: base64
Content-ID: <B1i55vjBs7G1k>
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAA4AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABxdTv8NRRVrzUUVa81FFWvTghZrzEUVa+2CFuvNxRVr90LX68gFFWv3QtR
rzcUVa9XC0avPhRVrzUUVK+OFFWv3QterzoUVa+NElOvNBRVr1JpY2g1FFWvAAAAAAAAAABQRQAA
TAEDAF1Flz0AAAAAAAAAAOAADwELAQYAAMAAAAAQAAAAQAYAQA0HAABQBgAAEAcAAABAAAAQAAAA
AgAABAAAAAAAAAAEAAAAAAAAAAAgBwAABAAAAAAAAAIAAAAAABAAABAAAAAAEAAAEAAAAAAAABAA
添付書類はこういう感じになって普通の文章の後ろについています。
だから、そういったメールを見て、ちょうど何文字くらいで切れているとか
何行くらいで切れているとかというのがわかれば、そこらへんに原因が
あるのかなぁと。
0856nobodyさん
02/10/10 12:05ID:ZvzQ38ZZまあ、とりあえずここでも読んでください。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=Jcode%2Epm+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
0857しろうと
02/10/10 12:14ID:???ありがとうございました.要点は,システムへのインストールが必要なので,
root に頼んで,きちんとインストールしてもらわなければならないものだと
いうことですよね?
何となく分かってきました.ありがとうございました.
0858848
02/10/10 12:31ID:0YXqHo+tあ、やっぱ、ソレだったんですか・・・
852から始まって、最後5行が、
・
・
・
MARSRR"27;+(PO:&I3L<>^T4Q3IA<3#$C+IUL\\TXYZSSK36AP^+.0`<M]-!$
J`]VSLT4GK?323#>-%[email protected]%17$FWU(R[]?/767'?M]==@AZU:(``[
`
end
-------------------------------7d238f34a0412--
↑こんな感じなんですが、コレじゃあわかんないですよね?
あ、コレ、Yahoo!のトップの画像なんですけど、(main7.gifってやつです)
0859848
02/10/10 12:45ID:???> 852から始まって、
は
>>852の
> -------------------------------7d238f34a0412
> Content-Type: application/octet-stream; name="main7.gif"
> Content-Transfer-Encoding: X-uuencode
> Content-Disposition: attachment; filename="main7.gif"
>
> begin 644 main7.gif
> ・
> ・
> ・
から始まって・・・って意味です
0860849
02/10/10 13:48ID:???メールが途切れていることはないと思います。となると一から考え直しですが、
ぐちゃぐちゃになった画像ファイルはサイズも変わっていますか?
0861848
02/10/10 14:10ID:084tFYZPYahoo!Top画像(main7.gif) 6.67 KB (6,837 バイト)
メールを通したもの 6.63 KB (6,792 バイト)
です。若干縮んでますね。
0862nobodyさん
02/10/10 14:41ID:???サーバの OS は? Win系だったら
231: if (!open(OUT,"| $nkf -j | $sendmail -t")) { &error('Error'); }
232: binmode OUT; # 追加
233: $host = $ENV{'REMOTE_HOST'};
かも知れない。Win でパイプなんて使った事ないから、
binmode 要るのかどうか知らんけど。
0863nobodyさん
02/10/10 14:41ID:Nn4CcN7jcgiスクリプトの
if (-e "$tmp$filenum") { unlink("$tmp$filenum"); }
をコメントにして、アップロードが正常に出来ているか確認してみては。
./tmp/ディレクトリにアップされた画像を表示してみる。
異常だったらアップロードが変
正常だったらuuencodeが変
0864質問
02/10/10 14:44ID:???ログ200行の中からwhileで10行処理するのとは
スピードは変わらないんですか?
具体的なソースを出してくれなきゃ、「そんなにかわらない」としか
言えない。けど、いまどきのコンピュータで100行の処理と200行の
処理で違いがでるほどのことがあるのかな。
0867862
02/10/10 14:59ID:???413: if (open(UU,"$UUENCODE $tmp$filenum $filename |")) {
414:
415: @UUFILE = <UU>;
見つからない、とかいうケースだと違いは大幅に出ますが、先頭10行出力、程度だと
ほとんど変わらないでしょうね。
0869848
02/10/10 15:05ID:???で、>861さんのをやってみたんですが、
ちゃんと表示されてました。
ってことは、uuencodeなんですよね?ヴァージョンでしょうか?
でも、レンタル鯖にお願いすることもできないですし・・・
このまま、tmpのんをコメントアウトしといて、
自分でダウンしに行くっていう手をとるしかないかなぁ・・・
何はともあれ、理由が解ってホッとしました。
有難う御座いますた!
あ、もし「こうしたら?」みたいなのがあれば、
書き込んでくれると、嬉しいです。
0870nobodyさん
02/10/10 15:06ID:???1;
__END__
これなんですか。
0873nobodyさん
02/10/10 16:11ID:???use Socket; は大抵のサーバーで使えるんですよね?
use IO::Socket; これは使える確立が低いんですよね?
0874nobodyさん
02/10/10 16:16ID:???Socket はperl5の標準モジュールですが、 IO::Socketは別途インストールする必要が
ありますから、使える可能性は低いですね。
0876nobodyさん
02/10/10 17:36ID:???IO::Socketも標準だけど…(少なくとも5.005の時点では)
しかもIO::SocketはSocketのラッパーに過ぎないので、
Socketが使えてIO::Socketが使えないという状況は考えにくいよ。
0878873
02/10/10 20:35ID:???0880nobodyさん
02/10/11 13:44ID:???「\$\w+」この書き方であってますか?
でもこれだと $abc123 とかいう変数は123に反応しないんで間違ってるみたいなんですが。
0881nobodyさん
02/10/11 13:53ID:???0882nobodyさん
02/10/11 13:56ID:ZUcC5F8u0883nobodyさん
02/10/11 15:08ID:3YhC7jcnまずは、ヘッダの取得とボディの取得。たとえば、
Recieved: ヘッダは複数行にわたることがありますし、同じヘッダ名で複数
存在することがあるので、これは複数行を一つにまとめ、配列にいれる。
](例)
Received: 1
2
3
Received: a
b
c
だったら、以下のように格納したいです
$header{Received][0] = "1 2 3";
$header{Received][1] = "a b c";
0884nobodyさん
02/10/11 15:10ID:3YhC7jcn本文は @0body に格納したいです。
以上を、まずやって、各行の内容をチェックして・・・・。
とおもっているのですが、いまだ超初心者のため、全然
うまくいきません
どなたかおしえていただけませんか?
0885nobodyさん
02/10/11 15:55ID:CDmI7Jp8print;
}
変数$nameにマッチするかどうかチェックするには
こんな書き方でいいんですか?正規表現でも$が使わ
れてるからよくないとは思うのですが。
うまくいったりいかなかったりするので、こういう
場合の正しい書き方教えてください。
0886nobodyさん
02/10/11 16:10ID:dKGHWOFuhttp://www.geocities.co.jp/Milkyway-Aquarius/4378/
北朝鮮の彼氏を持つ女の子のHP
具体的に何を教えて欲しいのかはっきりしてくれませんか?
Perl超初心者でも人間の初心者、日本語の初心者でなかったら、
何をやろうとして、こういうことをしたんだけど、こういう結果がでて
ほしいのに実行結果はこうなりました、くらい書けないのか。
0888nobodyさん
02/10/11 20:15ID:5ek4fUJV入門本に載っているいちばん単純なソースをエディタで打ち込んで
ブラウザからアクセスすると、500 Internal Server Errorとなります。
どこが悪いのでしょう?
#!/usr/bin/perl
use CGI qw(:satndard);
print header;
print start_html('Hello');
print h1('This is hello.cgi');
print end_html;
0889nobodyさん
02/10/11 20:51ID:???0890nobodyさん
02/10/11 20:53ID:???まずCGIの問題とPerlの問題に切り分けてください。
まずCGIがきちんとお約束どおりになっているかどうか
確認してください。プロバイダによっては、
#!/usr/bin/perl なのか #!/usr/local/bin/perl かに分かれますし、
ファイルのパーミッションもプロバイダから指定された通りになって
いるのかどうかを調べてください。
CGIだとエラーメッセージはwebサーバのログに
でますから、もしも自分でサーバを立てているとかで
サーバのログが見れるのでしたら、そこを見てください。
それが無理なら、
use CGI qw(:satndard);
use CGI::Carp qw(fatalsToBrowser);
という風にCGI::Carpをつけるとエラーメッセージがブラウザに
出ますので、とりあえずそれを見てください。
0891nobodyさん
02/10/12 01:31ID:???消えることがあるのはなぜですか?
自作でアクセスログ取得機能付きのカウンタをつけてみたのですが,
3日に一度はカウンタ数などを記録するファイルが消えてしまいます.
消えないように気をつけるための注意点などあれば教えてください.
0893nobodyさん
02/10/12 01:42ID:???http://www.makoto.ath.cx/~uploader/source/up0143.txt
0894892
02/10/12 01:51ID:???のように、読み込みなのに書き込み用ロックを実行している。
>open(OUT, "> $logfile");
のように、いきなりファイルを空にしている。
0895nobodyさん
02/10/12 01:58ID:???では,ひとつめはflock(IN,1)にすれば良いだと思います.
でも,ふたつめはどのように解決したらいいんでしょうか…
0896892
02/10/12 02:02ID:???flock(OUT, 2);
truncate(OUT, 0);
seek(OUT, 0, 0);
print OUT "hogehoge\n";
close(OUT);
みたいな感じかな・・・
0897nobodyさん
02/10/12 02:07ID:???早速そういうふうにしてみます.
それでもダメでしたらまた来ますのでよろしくお願いします.
0898nobodyさん
02/10/12 02:13ID:???0899892
02/10/12 02:15ID:???0900nobodyさん
02/10/12 02:23ID:???0901nobodyさん
02/10/12 02:30ID:???http://www.puni.net/~mimori/rfc/rfc3092.txt
レス数が900を超えています。1000を超えると表示できなくなるよ。