トップページ⇒php
1001コメント304KB

【Perl】初心者コーナー Part14

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/07/18 16:34ID:jemWJhH3
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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あたりを見よう。
0693nobodyさん02/08/01 19:25ID:???
>>691
バイナリで送られてきたデータ先頭を確認する。

>>692
表示されているのはおかしいぞ、と。
0694nobodyさん02/08/01 19:29ID:???
\xFF \xD8 \xFF \xE0 \x00 \x10 \x4A \x46 \x49 \x46 \x00
がJPEGの先頭のバイナリ。(たぶん。バイナリエディタで自分の持ってるJPEG画像開いて確認してくれ)
これが先頭にあるかを見る。
069569202/08/01 19:55ID:PoaI42Wk
>>693
ですよね〜
やっぱりSSIは動作してないかも、です。
でもCGI自体は動いているみたいで自分のアクセスしたログが
記録されてた。SSIが 使えないとダメなスクリプトのはずなのに、
なんでだろう・・・なんか混乱しちゃってます・・
0696nobodyさん02/08/01 20:02ID:???
>692
port5.comがどういうところか知らないけど、そこのSSIではexecは許可されてるの?
0697nobodyさん02/08/01 20:39ID:???
>>695
拡張子を確認!!
069869202/08/01 20:43ID:???
>>696
あ、多分解決しました。
port5.comはよく落ちるってことでレンタル鯖板ではすこぶる評判が
良いです。FAQのCGIのセクションばかりみていたんですけど、
他のところにSSIの説明ありました。回答して下さった方ありがとうございました。
0699nobodyさん02/08/01 20:47ID:???
>>692
多分.htaccess
0700nobodyさん02/08/02 00:44ID:Sqea3lxU
>>695

拡張子なんてアテになんないから、691は拡張子以外で、って書いてるんだろ
0701nobodyさん02/08/02 00:51ID:???
>>697
>>700
落ち着け。
070267502/08/02 02:27ID:???
>>677
スマソ、いまいち元データと完成後の画面イメージが掴めんので、
事情が理解出来ないのだが、原理的にはこんなんで行くはずだが。
実際には@name0と、@name1は、リファレンスを使用したレコード
構造とかにする必要が有るだろうけど。
foreach my $name (@name0){
 foreach my $nickname (@name1) {
  my %nickname;
  $nickname{NICKNAME} = $nickname;
  push(@nicknames, \%nickname);
 }

 my %name;
 $name{NAME} = $name;
 $name{NICKNAMES} = \@nicknames;
 push(@loop_data, \%name);
}
$tpl->param(ROW => \@loop_data);

<TMPL_LOOP NAME=ROW>
 <tr><td><TMPL_VAR NAME=NAME></td><td>
 <TMPL_LOOP NAME=NICKNAMES>
  <TMPL_VAR NAME=NICKNAME>
 </TMPL_LOOP>
 </td></tr>
</TMPL_LOOP>
0703nobodyさん02/08/02 06:04ID:Q2JtjWGI
execでもsystemでも,実行させた外部プログラムが終わるまで
処理がこっちに帰って来ないのが不便でかないません.

外部プログラムを別プロセスで起動させることは出来ますか?
0704nobodyさん02/08/02 06:05ID:???
>>703
0705nobodyさん02/08/02 10:32ID:HalM3U4I
チャットで、全員他の人を落とす方法教えてもらえませんか?
0706nobodyさん02/08/02 10:43ID:???
CGIファイルを消す。
0707nobodyさん02/08/02 11:05ID:???
>703
exec ですと、perl スクリプトが終わるので処理は返ってきません。
system ですと、forkしますから、別プロセスになります。

私は、
外部プログラムをperlの中から呼ばない
どうしても外部プログラムを使わないとダメな時は、そのためのシェルスクリプト
をperlに吐かせ、それを実行
するようにしてます。
070869202/08/02 13:09ID:???
>>699
正解です・・勉強してきますー
0709nobodyさん02/08/02 13:30ID:8kGCovez
画像アップ掲示板で、画像のサムネイルを自動的に作るものがありますが、
あれってどうやってるんでしょうか?
(アップした画像を縮小してるんじゃなくて、小さな画像を自動的につくる)
0710nobodyさん02/08/02 14:05ID:???
>>709
ここは【Perl】初心者コーナー ですが、読めませんか?
0711nobodyさん02/08/02 15:01ID:???
html---------
<input type="checkbox" name="hoge" value="A">A
<input type="checkbox" name="hoge" value="B">B
cgi----------
@hoge = $FORM{'hoge'};
foreach $value (@hoge){
print "$value";
}

チェックボックスの値を受け取りたいんですけど、AとB両方チェックしても
Aしか受け取れません。やり方間違ってますか?
0712nobodyさん02/08/02 15:03ID:???
>711
間違ってる。

nameを変えないとどちらかが上書きされる。
0713nobodyさん02/08/02 15:09ID:Blzo1x52
配列として、返ってくると予想していたんですけどこの考えは間違いですか?
チェックボックスの数は変動するんでnameを別にするとしたら
わざわざ適当な名前+連番とかで付けなきゃいけないって事ですかね。
0714nobodyさん02/08/02 15:10ID:???
配列としては取れない。
0715nobodyさん02/08/02 15:14ID:???
<input type="checkbox" name="hoge1" value="A">A
<input type="checkbox" name="hoge2" value="B">B
....

仮に連番でチェックボックスを生成しても、今度値を受け取る時
その数だけ
$hoge1 = $FORM{'hoge1'};
$hoge2 = $FORM{'hoge2'};
...
ってあらかじめ何個も用意しておかなきゃいけないんでしょうか。
(掲示板の投稿削除で管理者は一気チェックして消せるみたいな感じにしたいんです)
0716nobodyさん02/08/02 15:21ID:???
$FORM{'hogeN'};  を  $hogeN に代入する必要は無いんじゃないか?
0717nobodyさん02/08/02 15:32ID:???
>715
頭固い?
for(my$i=1;$i<=$last_number;$i++){
  push(@hoge,$FORM{"hoge$i"});
}

とかで回せば楽だろう。
0718nobodyさん02/08/02 15:33ID:???
基本的なことがわかってないヤツは何をやってもダメ
0719nobodyさん02/08/02 15:34ID:???
>>715

頭硬い
要領悪い
プログラマーに向いてません
0720nobodyさん02/08/02 15:42ID:???
バカだって、バカなりに生きていかなきゃならんし…。
0721nobodyさん02/08/02 15:52ID:???
>>711
hoge=A&hoge=B&hoge=C・・・・
上書きはされないで送られる。
読み込むときに
$count = 0;
my @pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
  my($name,$value) = split(/=/,$pair);
  if($name eq 'hoge') {
    $hoge[$count] = $value;
    $count++;
  }
}
と配列に読み込むようにする。
0722nobodyさん02/08/02 18:27ID:???
>>712

ハズカシー!
0723nobodyさん02/08/02 19:34ID:???
けど指摘できたの721だけだな。
072471202/08/02 20:41ID:???
>722
取得する時に変える方法は思いつかなかった。
どうせcgi-lib.plかなにかで取得させてるんだろうと思ったし
言っても分からないだろうから、下手に混乱させる必要もないかなと。
>721の発想出ないなんて、確かに頭固くなってて恥ずかしいね。
0725nobodyさん02/08/02 21:32ID:???
>>724
言い訳ハズカシー!!
0726nobodyさん02/08/02 23:15ID:+4MGC8XT
1 FORM から送信されたデータをデコードしたり、エンコードしたい。


2 こんな風にやってみた。

s/(\W)/'%'. (unpack(H2, $1))/eg;
s/%([a-fA-F0-9]{2})/pack(H2, $1)/eg;


3 いや、ふつうに動きますが、いくつか CGI の掲示板
Perl のスクリプトを公開しているサイトを拝見させて
頂きましたが、圧倒的に以下の様なスクリプトが幅を
利かせています。

s/(\W)/sprintf('%%%02X', unpack(C, $1))/eg;
s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

"C" で pack or unpack するメリットと、
"H2" で pack or unpack するデメリットを伺いたいのですが。

てゆーか "H2" のが効率良さそうな気がするのですが。



0727nobodyさん02/08/02 23:23ID:???
H2の方が効率がいい。
RFCでCの方が書かれて
Cの方を使う人が多い。しまっていたから
072872602/08/02 23:31ID:???
>727
アリガトゴザイマス

RFC が解りません。
今調べてますが、差し支えなければ教えて下さい。


0729nobodyさん02/08/02 23:43ID:???
RFCの日本語訳ならこの辺。
http://www.se.hiroshima-u.ac.jp/~isaki/rfc/list.html

インターネットの標準を定めている文書、といっても過言ではない。
たしかURIエンコードの項目に pack("C", hex($1)) が書かれてた。
073072802/08/02 23:49ID:fhO9IRlh
>729
ありがとうございますです。
非常に参考になりました。

0731nobodyさん02/08/03 00:24ID:4FNUCrqf
叩かれ覚悟で質問します。htmlもロクにわかってません。
FORMで打ち込んだ内容をテキストに保存するCGIを作ってます。
#!/usr/local/bin/perl
print<<"EOM";
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="$naiyou">
<input type=submit value="送信する">
</form>
EOM
open(OUT,">> log.txt");
print OUT "$naiyou";
close(OUT);

すいませんアドバイスお願いします。
0732nobodyさん02/08/03 00:29ID:???

とりあえず、送られてきたデータを受け取れ。
話はそれからだ。


#!/usr/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buffer);
foreach $pair(@pairs){
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}

print<<"EOM";
<html>
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="naiyou">
<input type=submit value="送信する">
</form>
</html>
EOM
open(OUT,">>log.txt");
print OUT "$FORM{'sub'}";
close(OUT);
exit;
__END__
073373002/08/03 00:34ID:???
1 CGI 掲示板のログを、なるべく安全に保存したい。
2 "$/" INPUT_RECORD_SEPARATOR に "\n" を代入(する必要は多分無い)
"\r\n" を <br> に変換し "\r" "\n" を削除する。
"\r" をセパレータにしてデータを書き込む。
だいたいこんな感じ。
while($i < $log_countmax}){
 foreach(keys(%TMP)){$line .= "$_=$TMP{$_}\r";}
 push(@lines, $line);}

読み込み時には split にリミットを指定する事で文中の "=" は無視できる。
($key, $value) = split(/=/, $_, 2);

3 少ない環境での動作チェックはしましたが、同様の処理をしている
スクリプトを見かけないので、なんとなく不安が残ります。
何か問題点が有りそうでしたら、ご指摘下さい。
もちろん上記スクリプトは、意味が分かる程度に簡略化した物で動きませんよ?
073473102/08/03 00:43ID:4FNUCrqf
>>732
ありがとうございます!
でもサーバーエラーがでます。
なぜだろう・・ちゃんとパスやパーミッションも合ってるのに。
073573202/08/03 00:46ID:???
適当に書いたから(^^;
一応、データの受け取りはよく使われる。
↓こんなのが。

sub read_form {
local($pair,$buffer);
if($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}elsif($ENV{'REQUEST_METHOD'} eq 'GET'){
$buffer = $ENV{'QUERY_STRING'};
}
local(@pairs) = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}
0736nobodyさん02/08/03 00:51ID:???
Content-Type: text/html
を忘れてたからだ。

print<<"EOM";
のあとに
Content-Type: text/html<改行>
<改行>
入れてみて。
0737nobodyさん02/08/03 00:55ID:???
foreach $pair(@pairs){
の直後に
local($name,$value) = split(/=/,$pair);
も忘れてた。
回線切って首(略
073873102/08/03 01:07ID:4FNUCrqf
>>731
表示できました。
でも送信してもlog.txtに書き込まれないみたいです。
もうちょっとからかってみます。
0739nobodyさん02/08/03 01:10ID:???
>もうちょっとからかってみます。
漏れはからかわれていたのかΣ(゚д゚lll)
074073102/08/03 01:13ID:4FNUCrqf
>>739
いやそういう意味じゃないです!すいません。
自分でcgiをからかうという意味です。
変な言い方ですいません。
0741nobodyさん02/08/03 01:20ID:???
ローカルでテストしてみたけど、ちゃんと書き込まれてる。

#!/usr/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}

print<<"EOM";
Content-Type: text/html

<html>
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="naiyou">
<input type=submit value="送信する">
</form>
</html>
EOM
open(OUT,">>log.txt");
print OUT "$FORM{'sub'}";
close(OUT);
exit;
__END__
074273102/08/03 01:30ID:4FNUCrqf
>>741
できました。
すごい勉強になりました。
感謝!
0743nobodyさん02/08/03 06:08ID:???
すいません

$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;

これはいったいどういう処理をしているのでしょうか?
0744nobodyさん02/08/03 08:11ID:yBArvQmy
携帯からファイルをアップロードできるCGIを作っているんですが、
自分の所に携帯が無いのでどこを気をつけていいのか教えて頂けませんでしょうか?

Googleで6時間以上探し回っているんですがヒントすら見つかりません。
どなあたかご教授お願いします。
074574302/08/03 09:10ID:???

s/%([0-9-zA-Z]{2})/pack("H2", $1 )/eg;

というのは %12 や %a7 などにマッチさせて
pack("H2",$1)というのに変換するということはなんとなくわかるんですが
このpack("H2",$1)というのは具体的に何をしているのか解説しているサイト
ないでしょうか?もしくはどなたか答えてくれる方いましたらよろしくお願いします。
0746nobodyさん02/08/03 09:36ID:f5spmMMH
>>744
携帯電話のローカルな情報をアップロードするって話なの?
どこに気をつけるとかいう以前にできるか否かは検討したのか。

>>745
perldoc -f pack すると
H A hex string (high nybble first).
とあるよ。
0747nobodyさん02/08/03 10:09ID:y5M4ReYw
>745
http://www.goo.ne.jp/default.asp?MT=perl+pack&act.search=%A1%A1%B8%A1%BA%F7%A1%A1&top=gtop&_v=2

0748nobodyさん02/08/03 12:08ID:???
>>702
こちらの作ってるスクリプトもそれと同じような構造なのですが、
どうも自分のやろうとしている事はレコードを使わないといけないようですね。
ただ、検索してもレコードやリファレンスの構造がいまいちよく分からないんで、
HTML::Template以外の方法を使うことにします。
それほどこのモジュールにこだわる必要もないんで・・・もうしわけない。
0749nobodyさん02/08/03 20:59ID:???

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

このようなエージェントを利用して使用ブラウザと使用OSを取得したいと考えています。
例えば上の場合だと

$browser = "IE 5.5";
$os = "Windows XP";

というような感じに代入させたいのですが。。
0750nobodyさん02/08/03 21:13ID:???
>>749
上の例だと、IEは5.01じゃないのか?
しかもOSも2000。
0751nobodyさん02/08/03 21:46ID:???
>>750

そうでした。
どうすればいいのでしょうか?
0752nobodyさん02/08/03 21:54ID:???
ここでも見たらどうかね?

http://www.futomi.com/subroutine/ua.html
0753nobodyさん02/08/04 01:18ID:8/YQ8REX
始めまして。質問させていただきます。
フォームメールでローカルに有るファイルを添付させたいのですが、上手く出来ません。
送信したときにローカルファイルをサーバー上に一時ファイルでローカルファイルの
コピーを作成できないみたいなのです。
名前だけの空っぽのファイルができてそれが添付されてメールが届きます。
どうしたらファイルのコピーが作れるのでしょうか。
どなたかよろしくご教示ください。
0754nobodyさん02/08/04 01:26ID:???
Cで言うところのfscanfってPerlではなんて関数なんですか?
0755nobodyさん02/08/04 01:36ID:???
>>753
そのソースを見ないことには改善できないよ。
075675502/08/04 01:36ID:FrE7nmXK
デコード処理を行ってるつもりなのですが、
まったく反映されず、どこが悪いのかも分かりません。
ご指摘お願いします。
075775602/08/04 01:37ID:FrE7nmXK
sub decode {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer = $ENV{'QUERY_STRING'};
}

$i = 0;
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);

$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
075875602/08/04 01:37ID:FrE7nmXK
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');

$value =~ s/</</g;
$value =~ s/>/>/g;

$value =~ s/\r\n/<br>/g;
$value =~ s/\r/<br>/g;
$value =~ s/\n/<br>/g;

$value = $form{$name};

$name = $form{'name'};
$comment = $form{'comment'};

@num[$i]=$value;
$i=$i++;
}
0759nobodyさん02/08/04 01:45ID:???
あーぁ、やっちゃったな。CGIスレにリンク張ってやりたい処理と現状を書くべきなのに。
076075602/08/04 01:47ID:FrE7nmXK
>>759
知りませんでした。
スイマセン
076175302/08/04 01:55ID:8/YQ8REX
すみませんでした。
下に書いてあるふうに、ファイル名を取得して空の同名のファイルをサーバ上の
指定したフォルダに作成してるんですが、その作ったファイルの中にデータを書き
こめないんです。
どうしたら良いかご教示いただけないでしょうか。

$filename = $FORM{$tenpu};
$c_type = 'Content-Type';
@tmp = split(/\\/, $filename);
$tmpfile = pop(@tmp);

$file_path = "./mail_tmp/$tmpfile";
open(OUT, ">$file_path");
while($tmp_byte=read($filename, $buffer, 1024)) {
print OUT $buffer;
}
close(OUT);
0762nobodyさん02/08/04 02:16ID:???
>>756
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');

これは必要か? サーバ環境は?
0763nobodyさん02/08/04 02:21ID:???
>>761
$file_path = "./mail_tmp/$tmpfile";

$tmpfile に値ある?
mail_tmp のパーミッションは?
076475302/08/04 02:33ID:8/YQ8REX
763さん
すみません、値というと・・・?
mail_tmpのパーミッションは777です。
0765nobodyさん02/08/04 02:35ID:???
>>763
値というと、つまり、ファイル名がちゃんと入っているの? ってこと。
076675302/08/04 02:40ID:8/YQ8REX
あ、はい。ちゃんと名前は入ってきています。
この空っぽのファイルが添付されて送られてきてしまいます。
0767nobodyさん02/08/04 02:46ID:???
>>766
>>761以前の処理ってどうなってる?
076875302/08/04 02:55ID:8/YQ8REX
761より前の処理は
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$buffer,$ENV{"CONTENT_LENGTH"});
}else{
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/&/&/g;$value =~ s/"/"/g;$value =~ s/\,/,\;/g;
$FORM{$name} = $value;
}
です。
それで761の処理以降はsendmailの処理になってます。
サブジェクトや添付ファイルのエンコードとかもそこでやってます。
0769nobodyさん02/08/04 02:57ID:???
>>768
だったら、もうすでに標準入力からすべて読み込んでるわけだから当然ファイルは
空になります。
077075302/08/04 03:03ID:8/YQ8REX
そうなんですか!読んでても残ってるのかと思ってました。
もう1回やりなおしてみます。本当にありがとうございました。
0771nobodyさん02/08/04 06:22ID:???
>>752

いいもの教えてくれてありがとうございました
0772クッキーのオンオフ02/08/04 16:22ID:???
質問失礼します。
ユーザー環境でクッキーのオンオフを確認し、
クッキーオフならhidden属性を表示しないようにしたいのですが、
クッキーのオンオフをその場で見極める方法などはありますでしょうか?

自分ではヘッダ情報でクッキーを書き出してから、$ENV{'HTTP_COOKIE'}で
再取得できればクッキーオンだと確認できると思っていたのですが、
クッキーを記録したその場では$ENV{'HTTP_COOKIE'}が更新されないようで
上手くいきませんでした。

クッキー保存と読み込みを別スクリプトで行なえばいいのですが、
それだとサーバーへのアクセスも増えますし、訪問者の人の
手間も増えてしまいます。

クッキーのオンオフをその場で確認する方法、
もしくは$ENV{'HTTP_COOKIE'}の再読み込みをする方法を
ご存知な方がいらっしゃいましたら、どうかご教授ください。
よろしくお願いします。
0773apholist02/08/04 21:57ID:DUVpmc74
ActivePerl、Apache2.039でCGI動かしてるんですけど
いくつかのCGIで初期表示のあと、更新しようとすると

couldn't create child process: 22:
couldn't spawn child process:

というようなエラーが表示されます。何が原因だと
考えられますか?
0774nobodyさん02/08/04 22:01ID:???
子プロセスを作れませんでした?

UNIX専用の関数とか使ってない?
0775apholist02/08/04 22:06ID:DUVpmc74
>>774
あるかも。調べる方法ってあります?
0776apholist02/08/04 22:27ID:DUVpmc74
とりあえあう、Flockと、symlinkは外しました。
他にもありますか?
なかなかまとまったページがないっす。
0777nobodyさん02/08/04 22:29ID:???
fork とかも。
どのプラットフォームでも動くようなCGI使えや。
0778apholist02/08/04 22:49ID:DUVpmc74
>>777
難しいこと言うなぁ。簡単なことなのか?
どのプラットフォームでもっていうと、
チャット、掲示板、カウンターなどほとんどWinでは
難しいような気がするんだけど。
まあ、Winで作られたものならWinで動くんだろうけど。

とりあえず、forkチェックしてみます。
「とか」って言ってるけどなんで知ってるの?常識?
0779apholist02/08/04 23:00ID:DUVpmc74
スマソ。perlのドキュメントにありますた。

Some functions that work on Windows NT/2000 reportedly do not work or are buggy on Windows 95. An example is flock().

Certain functions don't seem to work on ActivePerl.
There are several functions that are unimplemented in the ActivePerl system. Here is a complete list of unimplemented functions:

Functions for processes and process groups
alarm(), getpgrp(), getppid(), getpriority(), setpgrp(), setpriority()

Fetching user and group info
endgrent(), endpwent(), getgrent(), getgrgid(), getgrnam(), getpwent(), getpwnam(), getpwuid(), setgrent(), setpwent()

System V interprocess communication functions
msgctl(), msgget(), msgrcv(), msgsnd(), semctl(), semget(), semop(), shmctl(), shmget(), shmread(), shmwrite()

Functions for filehandles, files, or directories
link(), symlink(), chroot()

Input and output functions
syscall()

Fetching network info
getnetbyname(), getnetbyaddr(), getnetent(), getprotoent(), getservent(), sethostent(), setnetent(), setprotoent(), setservent(), endhostent(), endnetent(), endprotoent(), endservent(), socketpair()

See the perlport and Win32 documentation pages for more information on the portability of builtin functions in ActivePerl.

だって。コピペしないほうがよかったか?
0780apholist02/08/04 23:29ID:DUVpmc74
うぉー全部チェックしたがまだ同じエラーだ…。
0781nobodyさん02/08/04 23:46ID:???
>>780
その前に、ごく簡単なCGIでもそうなるか試した?
0782apholist02/08/05 00:02ID:vCl4cucl
>>781
ごく簡単なCGIなら動きます。
掲示板も普通の?は動いたけど、megabbsスクリプトで
スレ立て後、レスを書き込もうとすると同じエラー。
0783nobodyさん02/08/05 00:12ID:???
NGワード!NGワード!w
0784nobodyさん02/08/05 00:13ID:???
>>782
じゃあ、そのmegabbsスクリプトってのがしょぼいんだろう。
0785nobodyさん02/08/05 00:17ID:mlKhZTXH
C言語
ファイルポインタを使って円の面積を計算するプログラム、教えてください。
ファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積
1
2
3
・
・
10
0786apholist02/08/05 00:26ID:vCl4cucl
>>783
え?ヤヴァイ?
0787apholist02/08/05 00:29ID:vCl4cucl
>>785
ネタ?厨?For文使うか一つずつ円周率3で計算すればいいんじゃない。
0788nobodyさん02/08/05 00:31ID:???
>>785
マルチはうせろ!     
0789nobodyさん02/08/05 00:40ID:???
http://pc3.2ch.net/test/read.cgi/tech/1028474590/
>>785 おめー殴らせろ
0790apholist02/08/05 00:41ID:vCl4cucl
>785
マルチだったのか。Perlとか言語の区別もつかんとは
あわれな厨だな。俺よりアフォだ。

とりあえず、うごきますた。Apache2.039が悪かったみたい。
1.326にしたら動いた。
人柱になるのはもっとスキルみがいてからにします。

ご協力感謝。
0791nobodyさん02/08/05 01:57ID:LdtViypm
アンダーバーを含む行の先頭に
hogeという文字列を追加したい場合
どう書けばいいですか
0792nobodyさん02/08/05 02:19ID:???
>>791
キーワード
正規表現 or index
■ このスレッドは過去ログ倉庫に格納されています