Perlコーディング初心者質問スレ Part 60
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/03(木) 23:51:12ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >2 以降
前スレ http://pc11.2ch.net/test/read.cgi/php/1234752149/
0455nobodyさん
2010/01/05(火) 17:18:20ID:???Plackはレイヤーが違う。
Plack::Apache2とCatalyst::Engine::Plack入れときゃいい話で
WAF使うならPSGIは意識しなくていい。
モジュール名はうろ覚えだから間違ってたらスマソ。
0456nobodyさん
2010/01/05(火) 17:27:13ID:???それとPerlバインディングは妙な使いづらさがある
速いのはいいんだけど
0457nobodyさん
2010/01/05(火) 17:32:59ID:???俺はふつーCSだろとか思ってるんだが、そういうツッコミがあると
思ってTTも併記しといた。TTはXSじゃないよな多分。
0458nobodyさん
2010/01/05(火) 20:58:54ID:???入り口としては簡単な部類に入ると思う
0459nobodyさん
2010/01/05(火) 21:26:39ID:???どんだけアクセス捌く予定だよ
0460450
2010/01/05(火) 23:34:33ID:???色々とthxです。
ちなみに>>450 = >>398で、>>443とは別人です・・・。
モジュールの中身を初めて読んでちょっと死にそうだったので、
もう少し身の丈にあったものがあるかなと・・・
0461nobodyさん
2010/01/06(水) 00:47:37ID:???0462nobodyさん
2010/01/06(水) 08:59:56ID:UNfDPcgPWindows XP Professional SP2で、apache2.2を動かしていて、
perl v5.10.0でプログラムを書いていますがうまく動きません。
具体的には、
http://www.stackasterisk.jp/tech/program/perl04_02.jsp
に書いてある★Dにsleep 10;を書くと、すぐにブラウザが開放されず、
10秒ほど読み込み中の状態になります。すぐにブラウザが開放されて、
バッファされてる出力も書き出されるのが希望なのですが、
Windowsを使っているのが悪いのでしょうか?
0463nobodyさん
2010/01/06(水) 09:12:27ID:???よく知らんがWindowsはperforkでのエミュレーションだからだろうな。
sleepはシステムコールだからプロセス潰すし。
0464nobodyさん
2010/01/06(水) 09:55:50ID:???お返事ありがとうございます。forkにこだわるつもりは無いのですが、
Windowsをサーバーにして、出力を全て出しつつ裏で時間のかかる処理を
続けるということは、可能なのでしょうか? $|=1とかも試したのですが、
ダメでした。
0465nobodyさん
2010/01/06(水) 11:20:05ID:???forkせずに、単にclose(STDOUT);してsleepするだけだとどうなる?
0466nobodyさん
2010/01/06(水) 12:12:42ID:???STDERRも閉じてみたらどうだろ。
0467nobodyさん
2010/01/06(水) 12:50:51ID:???今やってみたのですが、10秒程度読み込み中が続きました。
>>466
こちらはうまく行きました!ありがとうございます。
今本当に動かしたいプログラムを書き換えています。
また何か聞くかもしれませんがそのときはよろしくお願いします。
0468467
2010/01/06(水) 15:56:39ID:g9KuWVT/perlの処理は20分もあれば終わると見積もっているのですが、
Apacheの設定ではデフォルトは300秒でタイムアウトですよね。
これを回避するには c:/xampp/apache/conf/httpd.conf を書き換える
しかないのでしょうか。 http://httpd.apache.org/docs/2.2/mod/core.html#timeout に
その解説があるので、httpd.confの http://httpd.apache.org/docs/2.2/mod/core.html#options と
書いてある<Directory "C:/xampp/htdocs">のところに適当に Timeout 1200 と書きましたが
いちおうこれで動いているようなのですが、大丈夫でしょうか?
ちょっとスレ違いになってしまいますが、よろしくお願いします。
0469nobodyさん
2010/01/06(水) 16:17:40ID:???462で出力を閉じた時点でApacheの処理は完了していて、タイムアウトとか関係なくなるように思うが
0470nobodyさん
2010/01/06(水) 17:16:19ID:???0471nobodyさん
2010/01/06(水) 17:21:16ID:???0472nobodyさん
2010/01/06(水) 17:28:11ID:U4hPtr/3で、処理完了時に適当なファイルを作るようにすれば、そのファイルの有無で
処理の完了がわかる。
0473467
2010/01/07(木) 11:53:58ID:???Apacheのhttpd.confの書き方はまずかったようで、元に戻しました。
で、STDERRを閉じただけでは、なぜか時間のかかる処理部分は実行されない
という結果になりました(ブラウザは開放されます)。
で結局forkを使って子プロセスに処理させるようにして
とりあえずの目標は達成されたようです。いろいろとありがとうございました。
0474467
2010/01/07(木) 22:52:52ID:???秘密にする意味も無いので、お教えしますと、こんなページを作っています。
freesoft板@Virtua ch
http://virtua-ch.ddo.jp/cgi-bin/read.cgi?freesoft
興味があればご覧下さい。
0475nobodyさん
2010/01/07(木) 22:58:16ID:???書き出したファイルの内容と新しく吐いたソースの比較はどうすればできますか?
宜しくおねがいします。
0476nobodyさん
2010/01/08(金) 00:33:17ID:???そのURLだけじゃまったく分からないがエスパーすると
普通、ログの収集にはcronなりその類のスケジューラを使うと思う
>>475
>phpの吐いたソースを書き出して
ここが意味不明
phpの吐いたソースとは何のソース?
そしてそのソースを書き出すのはいったい誰?phpのように思うんだが
0477nobodyさん
2010/01/08(金) 06:01:19ID:???diffってコマンドは知ってるよね?Macには標準で入ってるし、
Winもdiffで検索すれば比較ソフトは出てくる。
俺がお勧めなのはvimdiffだがな。
0478475
2010/01/08(金) 19:43:24ID:???ごめんなさい。
0479nobodyさん
2010/01/10(日) 01:28:27ID:???Perlで組んでいるらしいのだが
負荷に耐えられないと嘆いてる。誰か助けてやってくれ
0480nobodyさん
2010/01/10(日) 02:34:52ID:???それはさておき、どんなに頑張ってもコードだけじゃ解決できない問題のような気がするぞ
サーバを増やすなどしてスケールアウトするのが一番なんじゃね
0481nobodyさん
2010/01/10(日) 19:02:07ID:???0482nobodyさん
2010/01/11(月) 09:59:05ID:???Twitterタイプのサービスか?
Twitterがどれだけ設計とスケールに苦労して今の状態を維持してるのか
1000回くらいググってから出直せ。
0483nobodyさん
2010/01/12(火) 23:50:01ID:???0484nobodyさん
2010/01/13(水) 07:23:08ID:???最新のtweet、ちょっと古いtweet、もっと古いtweetとサーバーを分けて
それぞれ必要なだけスケールする手法を取ってた気がする。
また変えたかも知れんが。
0485nobodyさん
2010/01/17(日) 17:46:44ID:???これ(a)を数える方法を教えてください。
0486nobodyさん
2010/01/17(日) 17:49:09ID:???もしくは
$hoge = s/(a)/$1/ig;
0487nobodyさん
2010/01/17(日) 17:50:17ID:???0488485
2010/01/17(日) 17:55:30ID:???0489nobodyさん
2010/01/17(日) 18:17:50ID:Ido2Vdjf0491nobodyさん
2010/01/18(月) 15:49:13ID:???以下のようなハッシュがあります。
$SERIAL = {
'1263794915' => {
'link' => 'http://localhost.com/',
'delete_flg' => '1',
'day_end' => '2010/01/15 24:10:19',
'title' => 'そろそろ',
'day_start' => '2009/12/15 24:10:19'
},
'1263794833' => {
'link' => 'http://localhost.com/',
'delete_flg' => '1',
'day_end' => '2010/02/15 24:10:19',
'title' => '本当におねがいします',
'day_start' => '2009/12/15 24:10:19'
},
'1263794894' => {
'link' => 'http://localhost.com/',
'delete_flg' => '1',
'day_end' => '2010/02/15 24:10:19',
'title' => 'とりあえずこれでおいておくか',
'day_start' => '2009/11/15 24:10:19'
},
};
$hash{'ID'}{'day_start'} の 開始日付でソートしたいのですがどうすればよろしいでしょうか?
0492nobodyさん
2010/01/18(月) 16:12:12ID:r5bEwLM5だけでいいような気がする
0493nobodyさん
2010/01/18(月) 16:15:20ID:???0494nobodyさん
2010/01/18(月) 16:32:26ID:r5bEwLM50495nobodyさん
2010/01/18(月) 16:34:05ID:???@keys = map{s/\///g} @keys;
@sort_keys = sort {$a <=> $b} @keys;
何がやりたいのか分からんけどこれでいいか?
0496nobodyさん
2010/01/18(月) 16:36:10ID:???$SERIAL->{$a}->{day_start} cmp $SERIAL->{$b}->{day_start}
# 文字列比較だから時刻に24時とか0時が混在してると変なことになるので、
# それが嫌ならstrptimeとかtimelocalでエポックに戻して数値比較するなりなんなり。
} keys %$SERIAL;
for my $id (@ids) {
# やりたい処理
print $SERIAL->{$id}->{ほげほげ}, $/;
}
ソート後のを元の$SERIALと同じ形式で格納するのはハッシュリファレンスじゃ無理。
0497nobodyさん
2010/01/18(月) 16:36:21ID:r5bEwLM5かな?
携帯からソース書くのって面倒臭いね
0498nobodyさん
2010/01/18(月) 16:37:11ID:???@keys = map {$SERIAL->{$_}->{day_start}} keys %$SERIAL;
@keys = map {s/\///g} @keys;
@sort_keys = sort {$a <=> $b} @keys;
こうだったわ
0499nobodyさん
2010/01/18(月) 16:46:12ID:???@keys = map {$SERIAL->{$_}->{day_start}} keys %$SERIAL;
@keys = map {s/[/:\s]//g} @keys;
@sort_keys = sort {$a <=> $b} @keys;
0500nobodyさん
2010/01/18(月) 17:03:19ID:???DateTimeでオブジェクトにしようとしたら24時ってあってうまくいかなかった。
つか、みんな頭いいな。
必死にindex作ってたよ
# day_startのDateTimeをkeyにしたhash
my %SERIAL_id_of;
my $fmt = DateTime::Format::Strptime->new(pattern => '%Y/%m/%d %T');
for my $id (keys %{$SERIAL}) {
my $datetime_of_day_start = $fmt->parse_datetime($SERIAL->{$id}->{day_start});
alias my $ids_ref = $SERIAL_id_of{$datetime_of_day_start};
if ($ids_ref) {
push @{$ids_ref}, $id;
}
else {
$ids_ref = [$id];
}
}
warn Dumper %SERIAL_id_of;
my @sort_ids;
for my $datetime_of_day_start (sort keys %SERIAL_id_of) {
push @sort_ids, @{$SERIAL_id_of{$datetime_of_day_start}};
}
warn Dumper @sort_ids;
0502nobodyさん
2010/01/19(火) 15:02:27ID:???最後の行あたりでよくわからないエラーをはいてしまい、実行すらできません。。
#円周率の近似値を求めるプログラム
$count=0;
for($n=1; $n<=1000; $n++){
$x=(rand);
$y=(rand);
$point = ($x * $x) + ($y * $y);
if($point<1){
$count++;
}
$pi= $count / $n;
$pi= sprintf "%.8f";
$pi= pi * 4;
printf "the loop repeated %d time",$n;
printf "pi is %.8f",$pi;
0503nobodyさん
2010/01/19(火) 15:06:31ID:???0504nobodyさん
2010/01/19(火) 15:09:10ID:???0505nobodyさん
2010/01/19(火) 15:09:51ID:???Missing right curly or square bracket at ...
0506nobodyさん
2010/01/19(火) 15:28:07ID:???0507nobodyさん
2010/01/19(火) 18:54:30ID:???以下の処理で文字コードの関係により困ってます。
クライアント側のjavascriptでjsonファイルを扱います。
jsonファイルはPerlの「print $jsonobj」によって吐き出します。
PerlscriptはUTF-8、jsファイル・htmlファイルはshiftjisです。
PerlでEncodeによりutf8→shiftjisにしているのですが、それ以外になにかやる事があるのでしょうか?
☆☆☆javascript☆☆☆
document.write('<script type="text/javascript" src="Perlで書いたjsonファイルをはくプログラム"></script>');
☆☆☆ Perl ☆☆☆☆
$jsonobj = q| array_jeson = |.$jsonobj;
Encode::from_to($jsonobj,'utf8','shiftjis');
print $jsonobj;
0509507
2010/01/19(火) 19:27:54ID:???Content-Type: text/html; charset=☆☆☆\n\n
☆☆☆の部分がミスってただけでした orz
UTF-8で出力したりいろいろパターンがあってミスってました
0510nobodyさん
2010/01/21(木) 00:41:21ID:???mod_perlのように、グローバル変数を使うと同じプロセス内の別スレッドから見えてしまうということはあるのでしょうか。
また、1リクエスト1プロセスを前提にした time . $$ の値は、同時に複数のリクエストで同じ値を持ちうるのでしょうか。
同一プロセスでもスレッドを識別するための情報を識別する環境変数はありますか?
thread-safeなPerlプログラミングの記事やドキュメントなどをご存知でしたらどなたか教えてください。
0511nobodyさん
2010/01/21(木) 17:39:33ID:???・print "Content-Type: text/html\n\n";以降の行にコメントを書く → 500エラー
・HTML::Templateのサンプルそのままコピって、my $tmpl_out = $template->output; → 500エラー
my $out = $template->output;
print "$out";ならセーフ。
ちょっと厳格すぎる気がするのですが、こんなモンでしょうか?
0512nobodyさん
2010/01/21(木) 18:24:54ID:rPXIzyqapremature end of script headers を食らうようなコードを書いてるだけだと思うんだけど。
perl -Tc script.cgi
これでずらずらとお知らせが出て来ない?
0513nobodyさん
2010/01/21(木) 18:39:16ID:???全角空白を入れてたり改行コードが実行環境に合ってなかったりってのがありがち
>>512
-W や -w でなく -T なのか
0515nobodyさん
2010/01/22(金) 11:47:37ID:???%hash = qw(
1 foo
2 hoge
3 bar
);
という書き方がとてもラクで気に入っているのですが、
これで二次ハッシュを書くにはどうしたら良いのでしょうか?
以下のようにするとダメでした。
my %hash = qw(
Friend {
hoge Perl
foo Perl
}
Enemy {
fuga Ruby
}
);
qw使っては無理でしょうか?
0516nobodyさん
2010/01/22(金) 12:16:25ID:???こういう風になら書けるが見づらいだけなのでおすすめはしない
my %hash = ( Friend => { qw/hoge Perl foo Perl/ }, Enemy => { qw/fuga Ruby/ } );
0517nobodyさん
2010/01/22(金) 13:01:13ID:???そのままじゃ無理だね。
( 'Friend', '{', 'hoge', 'Perl', 'foo', 'Perl', '}', 'Enemy', '{', 'fuga', 'Ruby', '}' )
というリストをパラメータでもらい、'{', '}'を解釈して
( 'Friend', { 'hoge', 'Perl', 'foo', 'Perl' }, 'Enemy', { 'fuga', 'Ruby' } )
というふうに組み替えてくれるサブルーチンqwhashを作って
my @hash = qwhash qw(...);
とすればいいんじゃね?
0518nobodyさん
2010/01/22(金) 13:01:56ID:???my(@l) = @_;
my @stack = ();
my $r = [];
while (@l) {
my $x = shift @l;
if ($x eq '{') {
push @stack, $r;
$r = [];
} elsif ($x eq '}') {
@stack or die "too many '}'";
push @{$stack[0]}, {@$r};
$r = pop @stack;
} else {
push @$r, $x;
}
}
@stack == 0 or die "too few '}'";
return @$r;
}
0519nobodyさん
2010/01/22(金) 14:18:53ID:BvoGYaqcindex.htmlにした方がいいと気づきました。この場合
open(STDOUT, ">c:/xampp/htdocs/ほげほげ/index.html") || die "cannot open index.html";
とやってしまっていいものでしょうか?
実際にやってみた結果は、openは失敗せず、index.htmlも作られないという感じでした。
いまからprint 文を全部書き換えるのは面倒だなと思っているのですが、いい方法無いでしょうか?
0520nobodyさん
2010/01/22(金) 14:40:44ID:???既存のファイルハンドルを指定していきなりopenした場合は、自動的にcloseしてから
openしてくれるので、それでもいいはずだけどな。何か思い違いをしてないかよく
調べた方が良い。
別の方法としては、select FILEHANDLEでデフォルトのファイルハンドルを切り替える、
ってのもあるよ。
0521nobodyさん
2010/01/22(金) 15:37:55ID:???ありがとうございます。
自分でハッシュテーブル書くのにも空白使えないし、
変数引っ張ってくるのも危ないから、やっぱりqwは使わないようにします。
0522nobodyさん
2010/01/22(金) 15:39:36ID:???STDOUTをただ閉じるとApacheとのつながりが切れるのではないかと思いこうしました。
良くは調べてないのですが、教わった方法をやってみました。こちらはうまく
index.htmlが生成されました。ただ画面自体はエラーなんですね…
これをどうしようか悩んでいます。
0523nobodyさん
2010/01/22(金) 17:25:23ID:???こういう事をしたいの?
#!/usr/bin/perl -w
use strict;
use Fcntl qw(:flock);
my $file = './test.txt';
print "Content-Type: text/plain\n\n";
my $fh;
if ($ARGV[0]) { # ファイルへ
open $fh, '>', $file or die $!;
flock $fh, LOCK_EX;
print "$file へ出力しました。";
}
else { # クライアントへ
$fh = \*STDOUT;
}
print $fh 'foo!';
__END__
0524nobodyさん
2010/01/23(土) 08:32:36ID:???それだとあちこちを書き直さなければいけないので、それ以外の方法を模索していました。
結局STDOUTを切り替える前に
Content-type:text/html; charset=shift_JIS
<DOCTYPE>
<html lang="ja">
<html>
<head>
<meta http-equiv="refresh" content="0;url=../hoge">
</head>
<body bgcolor=#ffffff>
</body>
</html>
と出力するようにしました。
0525nobodyさん
2010/01/24(日) 12:30:42ID:h+yaOkgWif($picture) {
# print <<END_OF_MESSAGE;
# <center>
# <img src="$picture" alt="">
# </center>
# END_OF_MESSAGE
}
という部分がCGIにあるのですが、コメントをはずすとファイル終端でエラーがでます。
ヒアドキュメントは見よう見まねで他でも使っているのに、なぜここだけエラーになるのか
ヒアドキュメントについて詳しく書いた本を持っていないのでよく分かりません。
理由分かる方いましたら教えてください。
0526nobodyさん
2010/01/24(日) 12:42:27ID:???if($picture) {
# print <<END_OF_MESSAGE;
# <center>
# <img src="$picture" alt="">
# </center>
# END_OF_MESSAGE
}
END_OF_MESSAGE
きっとこうなってるのさ
0527nobodyさん
2010/01/24(日) 12:47:04ID:???my $picture
if($picture){
print <<END_OF_MESSAGE
<img src="$picture" alt="">
END_OF_MESSAGE
}
だけのファイルを作ってperl -cw してみたんですが
> syntax error at aaa.cgi line 3, near "){"
> Can't find string terminator "END_OF_MESSAGE" anywhere before EOF at aaa.cgi line 4.
とでます。やっぱり意味が分かりません。
なぜEND_OF_MESSAGEが見つからないということになるんでしょうか。
0528nobodyさん
2010/01/24(日) 12:55:26ID:???本がなければperldocを読めばいいじゃない。
http://perldoc.jp/docs/perl/5.10.0/perlop.pod#item__lt__lt_EOF_here_doc_heredoc_here_document__lt__lt_
>>527
my $picture の後ろに ; が無いから。
print <<END_OF_MESSAGE の後ろにもないけど、
これは if ブロック内の最後の文なので省略可能。
0529nobodyさん
2010/01/24(日) 13:06:22ID:h+yaOkgWperldocの最初の方だけ見て
my $picture="c:/xampp/htdocs/hoge.gif";
if($picture){
print <<END_OF_MESSAGE;
<img src="$picture" alt="">
END_OF_MESSAGE
}
と書き直してみましたが、
Can't find string terminator "END_OF_MESSAGE" anywhere before EOF at aaa.cgi line 4.
と出るのはかわりません。なぜでしょうか?
0530nobodyさん
2010/01/24(日) 13:13:42ID:???0531nobodyさん
2010/01/24(日) 13:15:23ID:???だからじゃね
0532nobodyさん
2010/01/24(日) 13:17:58ID:U2dkcd6K恐らくは改行コード・・・
0533nobodyさん
2010/01/24(日) 13:19:28ID:???お騒がせしました。Meadowの blank-mode は
常にオンにしておこうかな…
0534nobodyさん
2010/01/24(日) 14:33:19ID:???難しいこと全部やってくれるからオススメ。
初心者スレだから書いてみた。
0535nobodyさん
2010/01/24(日) 16:59:34ID:U2dkcd6K0536nobodyさん
2010/01/28(木) 23:57:36ID:MprgKrS4Net::FTPを使ってファイルのアップロードを行おうと考えております。
今まではFreeBSDサーバーへのアップロードであったため
$ftp->cwd
$ftp->put
$ftp->ls
などのコマンドが使用出来ましたが、Windows系サーバー(2008R2)
の場合はこれらのコマンドは使用出来るのでしょうか?
どなたかご存知の方いらっしゃいましたらお願い致します。
0537nobodyさん
2010/01/29(金) 00:21:05ID:???それくらいは大丈夫だよ
0538nobodyさん
2010/01/29(金) 00:26:29ID:kJRAFybz0539nobodyさん
2010/01/29(金) 00:49:32ID:XeE9xFHb>>538
接続先OSがwindowsの場合、lsコマンドなどは無いので、FTPのコマンドも
独自のものかと思い質問致しました。
素早いご返答ありがとうございました。
0540nobodyさん
2010/01/29(金) 09:51:16ID:???「キッチンの方の」にマッチさせたくない場合は
どう書けば良いですか?
後ろに「方」が付くかどうかの違いです。
0541nobodyさん
2010/01/29(金) 09:58:46ID:kJRAFybz0542nobodyさん
2010/01/29(金) 10:00:47ID:???否定後読み
正規表現単体の質問ならプログラム板の正規表現スレでやれよ
0543540
2010/01/29(金) 10:09:27ID:???0544nobodyさん
2010/01/30(土) 00:13:34ID:???0545nobodyさん
2010/01/30(土) 00:28:03ID:+AHy4UTdのような感じで、1行に1つの多角形の座標を記述したファイルがあるとして、
任意の XY 座標が、上記ファイルの各行に記述された多角形内に
収まってるかを検索する方法として、なにか検索の定石みたいのはありますか?
GPS 座標からどこに居るのかを地名付きで表示したいと思っています
自治体の面積データは国が配ってるデータを使用します
0546nobodyさん
2010/01/30(土) 00:46:09ID:9jHLZuCt0547nobodyさん
2010/01/30(土) 00:51:18ID:9jHLZuCt0548nobodyさん
2010/01/30(土) 00:55:19ID:???定石かどうかは知らないけど、CPANにこんなのがあった。
http://cpansearch.perl.org/src/MARKOV/Math-Polygon-1.01/lib/Math/Polygon/Calc.pm
polygon_contains_point
まぁ「GPS」とか「Geo」とかでモジュール探した方が良さそうではある。
http://search.cpan.org/
0549nobodyさん
2010/01/30(土) 02:32:59ID:+AHy4UTdありがとうございます m(_ _)m
0550nobodyさん
2010/01/30(土) 02:44:24ID:0KWCr7Sg開発環境: winxp, anhttpd, もしくはBlackJumboDog, ActivePerl5.8.7
状況: ずーっと以前に中途半端に作ったプログラムファイルを見てみたら、いきなり意味がわからなかった。
--------------------------------------------
1: perl -c でコンパイルできない記述が、anhttpdからcgiとして起動させるとなぜか普通に動く。(BlackJumboDogからでも動く)
コマンドから -wc で動かすと以下のメッセージを吐く。
Can't find string terminator "]" anywhere before EOF at - line 211.
(このエラーメッセージ通りの記述ミスはない)
どうゆうケースが考えられますか?ちょっと検討がつきません。
---------------------------------------------
2: htmlだけを出力するcgiを試しに作ってみた。
コマンドから -w で動かすと以下の出力をする。
Content-Type: text/html;charset=Shift_JIS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><TITLE>test</TITLE></HEAD><BODY>
test出力できてます
</body></html>
なぜかanhttpdから動かない。他のcgiはanhttpdで動く。
BlackJumboDogからだと動く。
どうゆうケースが考えられますか?
---------------------------------------------
正直、この手のエラーは頭痛がします。
純粋にperlの質問じゃなくてすみません。
0551550
2010/01/30(土) 04:52:59ID:???よく考えるとヘッダのあとの改行は二つでした。
こんなことを3時間以上も考えるなんて恐ろしい。
1のほうはまだ未解決頭痛続行中です。お願いします。
0552nobodyさん
2010/01/30(土) 05:04:21ID:???> Can't find string terminator "]" anywhere before EOF at - line 211.
> (このエラーメッセージ通りの記述ミスはない) ←これが気のせい
line 211に何かがあるわけじゃなくてもっと手前で閉じるべきもんを閉じてないと
パーサさんが EOF まで探したところで挫折する。
0553550
2010/01/30(土) 05:13:12ID:???そうではなくて今不思議なのは、なぜhttpdから記述を引き渡すとコンパイルされない物がコンパイルされ、
その上エラーメッセージすら吐かずに稼動するのか?と言う所にあります。
■ このスレッドは過去ログ倉庫に格納されています