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

Perlコーディング初心者質問スレ Part 45

■ このスレッドは過去ログ倉庫に格納されています
00019882005/12/08(木) 22:48:27ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
06806722006/01/14(土) 04:43:19ID:???
>>679
do ファイル; なんて出来ちゃうんですか。 これもなかなか美しいですね。
0681nobodyさん2006/01/14(土) 04:44:08ID:???
>>677
#--- 設定
package Setup;
use strict;
sub get{
bless( {
 foo => 1,
 hoge => 2,
 array => [1,2,3]
} , $_[0] );

}
1;
__END__

#!/usr/local/bin/perl
use strict;
use Setup;
my $setup => Setup->get;
print $setup->{'foo'};
print $setup->{'array'}->[0];
__END__
0682nobodyさん2006/01/14(土) 05:58:58ID:???
遅くなりました。返信有難う御座います。

>>666
レン鯖です。
やはりタイムアウト的な処理でしたか。
それを避ける方法は御座いますでしょうか?

>>671
open(LOG,"$datfile");
while ( $data = <LOG> ) {

処理

}
close(LOG);

であってますでしょうか?
0683nobodyさん2006/01/14(土) 06:19:45ID:???
>682
処理がどんなことしてるかは知りませんが、たかだか 800 行程度でタイムアウト起こすような
貧弱サーバーそのものの利用を考えたほうが良いのではないのでしょうか?


>671
個人的には foreach の方が perl らしくて好き

foreach my $logline (<LOG>){
  〜処理〜
}
0684nobodyさん2006/01/14(土) 06:32:02ID:???
foreachじゃリストに展開するから配列にいれるのと一緒になっちゃうだろ。
0685nobodyさん2006/01/14(土) 08:03:10ID:???
おっなるほど。 while を使うのはそゆことでしたか。
自分は 682 さんではありませんが、1つ勉強になりました。
thx
0686nobodyさん2006/01/14(土) 09:24:51ID:???
>>683

馬鹿が「perlっぽい」とか言わなくていいから。
もうこのスレに書かないほうがいいよ。

0687nobodyさん2006/01/14(土) 09:37:38ID:???
ここwebprog板だぜ
0688nobodyさん2006/01/14(土) 09:39:12ID:???
perl で書かれた CGI のソースに、$vout 変数内に a タグで mailto: のリンクが書いてあり、クライアントが
リンクを踏むと、メーラーが立ち上がるようになっています。

が、mailto: に subject と body を含めて、かつ body には改行を含めたいのですが、どうしてもエラーになってしまいます。
以下を含める場合、どのように書けばよいのでしょうか ?

<持込に関して> ← subject
↓本文
@お名前[改行]
@ご住所[改行]
@お電話番号[改行]
<問い合わせ内容詳細>

ソースは ShiftJISになっています。よろしくお願いします。
0689nobodyさん2006/01/14(土) 09:39:30ID:???
#!/usr/bin/perl
use LWP::Simple;
$url = 'http://girls.twistys.net/preview/';
for ($i=1; $i<=3; $i++) {
 $num = sprintf("%03d", $i);
 $_ = get($url.$num."/");
 s/\w*\d{1,2}\.jpg/push @jpgs, $&/eg;
 foreach $jpg (@jpgs) {
  getstore($url.$num."/".$jpg, $num.$jpg);
 }
}
0690nobodyさん2006/01/14(土) 10:13:25ID:???
>>688
このスレの質問じゃねぇし
http://www.ring.gr.jp/pub/doc/RFC/rfc2368.txt

mailto:[email protected]
?subject=%8E%9D%8D%9E%82%C9%8A%D6%82%B5%82%C4
&body=%40%82%A8%96%BC%91O%5B%89%FC%8Ds%5D%0D
%0A%40%82%B2%8FZ%8F%8A%5B%89%FC%8Ds%5D%0D%0A
%40%82%A8%93d%98b%94%D4%8D%86%5B%89%FC%8Ds%5D
%0D%0A%3C%96%E2%82%A2%8D%87%82%ED%82%B9%93%E0
%97e%8F%DA%8D%D7%3E

上を一行に合わせれ
0691nobodyさん2006/01/14(土) 10:43:53ID:???
>683
> 処理がどんなことしてるかは知りませんが、たかだか 800 行程度でタイムアウト起こすような
その行について、どんな処理をしてるかわからないのに800行で判断する、っていうのはどうかと。
行数で判断するんだったら7万行で、に置き換えてください。そして、タイムアウトするのを避ける方法を教えてください。

なんかコンビニバイト風情が、肉体労働者に「一日働いただけで疲れるのはどうかと」って言ってるのと同じかな
0692nobodyさん2006/01/14(土) 10:56:45ID:???
> foreach my $logline (<LOG>){
>   〜処理〜
> }

こんな処理を800行「程度」を越える量書くとは…… 俺のレン鯖にいないことを願おう。
0693nobodyさん2006/01/14(土) 10:57:54ID:???
タイムアウトを考えてのことなら7万行じゃ少ないんじゃない?
せめて70万行とかさ
0694nobodyさん2006/01/14(土) 11:32:10ID:???
>>690

ありがとうございます。
実は、同じようにURLエンコードして、おっしゃられたように入れてみたのですが、エラーになってしまうんです。
元に戻すとサーバエラーはでなくなるので、記述の仕方がどこか違うようなんですが
perl の独特な記述の仕方があるのかと思って書き込ませて頂きました。
0695nobodyさん2006/01/14(土) 11:33:21ID:???
無限ループ作れば1行ですむ
0696nobodyさん2006/01/14(土) 11:50:37ID:???
エラーになると言っておいてエラー内容を書かないのはなんで?

多分、ダブルクオートで囲って @ や % が変数に展開されてるに一票。
0697nobodyさん2006/01/14(土) 12:07:44ID:???
データ自体が16から32kbytes程度なら、
別にforeachでも問題なかろう。
それで問題が起きるなら、それこそ鯖が貧弱。
0698nobodyさん2006/01/14(土) 12:14:40ID:???
愚直にファイル読み込んでタイムアウトになるならファイルの構造を
見直すしかないでしょ

データの量(行数だけでは分からないだろ)も処理の内容も
分からねーのに、何か教えてほしいなんて無理
0699nobodyさん2006/01/14(土) 12:36:49ID:???
>>697

馬鹿のプロセス切るのは「鯖が貧弱」
だからじゃなくて管理がしっかりしてるからでしょ。
「問題」じゃまったくないし。

まぁ実際 32kb で切ってたら別の問題だけどね。

お前は書かないほうがいいよ。
0700nobodyさん2006/01/14(土) 12:53:21ID:???
  おチンチンびろーん
   ∩___∩
   | ノ      ヽ/⌒)
  /⌒) (゚)   (゚) | .|
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /
  /      /
 |   _つ  /
 |  /UJ\ \
 | /     )  )
 ∪     (  \
        \_)
0701nobodyさん2006/01/14(土) 12:56:32ID:???
>>696

使っているサーバがエラー番号などが出ない仕様なんです。
「サーバエラーが発生しました…」という文章しか出ないので。

確かにダブルクォートで囲って有ります。$vout に代入されているようなんですが…。

その場合はどうすればいいでしょうか ?
0702nobodyさん2006/01/14(土) 13:23:01ID:???
サーバで実験しない
よいこの約束
0703nobodyさん2006/01/14(土) 15:29:20ID:???
>>699
ログが十分に小さければ、foreachとwhileの違いだけで、変わる状況なんて無いね。
仮に、それで問題が起きるなら、プロセス辺りのメモリ割り当てが
かなり小さいぐらいしか考えられない(鯖が貧弱)。
ってことなんだが(苦笑)。

4年書き続けてきたけど、もうだめぽか、ここも。
0704nobodyさん2006/01/14(土) 15:36:47ID:???
10万行ループなどMTの再構築に比べればたいしたことない
0705nobodyさん2006/01/14(土) 15:53:30ID:???
>>701
たのむからローカルでやってくれ
0706nobodyさん2006/01/14(土) 16:33:57ID:???
>>701
他人の管理下にあるサーバで実験しない。自分が動かしているサーバで
実験すれば、そのログを見てデバッグできる。
>>1に書いてある通り、エラーの内容も貼れないんじゃ質問以前の問題だ。

>>703
4年もいるんだったらスルーすることぐらい覚えろよ。
0707nobodyさん2006/01/14(土) 18:00:04ID:???
>foreach( <> )
とか書いてある時点でダメに決まってるじゃん。

それとも4年前からこんな感じだったの?
07087032006/01/14(土) 18:36:01ID:???
>>707
私の書き方は>>336を参照してください。
短いファイルなら、ロックする時間をできるだけ短くするように書いてます。
0709nobodyさん2006/01/14(土) 19:59:22ID:???
> while( <$FH> )
普通こうする。読み込みなら文句なしに最強。

> foreach( @FILE )
いわずと知れたKEMT仕様。そして何故か入門者ご用達。
でも頻繁に書き込み(書き込みロック)が必要な場合好んで使う人も。

> foreach( <$FH> )
謎仕様。ファイル開きっぱなしで配列展開。KEMTもびっくり。
0710nobodyさん2006/01/14(土) 20:31:18ID:???
>>709
while は最強っていうか、単に昔から Perl の参考書に多い処理ってだけじゃ?
0711nobodyさん2006/01/14(土) 21:02:12ID:???
<$FH> は他のメソッドなり何なりにかわるかもしれんが、
それでも逐次読み出しか一気にメモリに読み出してしまうかに大別できるでしょ
多分。
0712nobodyさん2006/01/14(土) 21:10:27ID:???
自分のスクリプトでforeachからwhileに置き換えられるところは置き換えたんですが、その際に1つ疑問が出ました。

リファラのログを取ってて最大件数500件で、501件目が来たら古いリファラは削除して新しいリファラを追加するって処理の時に
現在が何件のログが貯まってるかを調べる時にはwhileだと一旦最後までループさしてカウンタをカウントアップさせて総数を得て、
その次にまたwhileで処理って感じになると思うんですが、

foreachでメモリに負担 なのと whileでDISK I/Oに負担とじゃ他のユーザーも同時に使ってるサーバー上ではどの処理がやさしいんでしょか?

今までforeachしか使ってなくてそれを否定された感があってちょっと自信難儀に陥ってまして助言とか意見があれば参考にしたいと思います。
0713nobodyさん2006/01/14(土) 21:41:50ID:???
>>712
おれならメモリに突っ込んでやるけど
テスト環境を用意できるならベンチとってみれば?

0714nobodyさん2006/01/14(土) 21:56:12ID:???
大抵のシステム(OS)はファイルにアクセスするときに先読みやキャッシングをしてくれるので
Perlで二度アクセスするときのIOは気にする必要は小さなファイルであればいりません。

逆に、プログラムの中でキャッシング的な目的でメモリに読み込もうとすると
OS等の低レベルキャッシングとアプリケーションレベルのキャッシングが
物理メモリに配置されることになって、特別な事情がない限り非効率的です。


ちなみにそういうファイルを後から読み込みたいときは専用のモジュールがあります。
Text::Backwords (名前うろ覚え)
今回のケースではメモリ、IOともにもっとも効率がよくなるかと。
0715nobodyさん2006/01/14(土) 21:59:37ID:???
途中で書き足したら意味が解らん。ヤバス。
まぁ要は専用のモジュール使えって事で
0716nobodyさん2006/01/14(土) 22:04:45ID:???
>>714
File::ReadBackwards ?
0717nobodyさん2006/01/14(土) 22:10:51ID:???
メモリ使用量が数百KBレベルの差しかないんだったら、処理が高速な方を選択するよ。
さっさと処理を終らせてメモリを開放させてあげるほうが共用サーバでは重要だし。
0718nobodyさん2006/01/14(土) 22:19:54ID:???
普通はメモリに読み込まないほうがメモリ使わなくて高速だからね。
どうもそこらへんわかってないやつが多すぎる。
0719nobodyさん2006/01/14(土) 22:24:28ID:???
メモリ数百k無駄遣いしてまで共有サーバーで自分のプロセス優先するのね。
「共有サーバーではそっちが重要」とか思い込み激し杉
0720nobodyさん2006/01/14(土) 22:38:45ID:???
>>719
細かい読み込み(しーく)も、鯖に負担かけるんじゃないの?
携帯も初期はそれで問題になったわけだし
良し悪しは良くわからんけど。
0721nobodyさん2006/01/14(土) 22:44:26ID:???
>718
お前は全部分かってないな
0722nobodyさん2006/01/14(土) 22:54:26ID:???
初心者スレで無理に玄人ぶるのはみっともないね
0723nobodyさん2006/01/14(土) 23:01:51ID:???
>>720

システムのキャッシュが破棄されるほどの間隔をおいてアクセスする場合、
そんな長い時間アプリケーションレベルでメモリを確保しとくのは他のプロセスの邪魔。
そしてそのメモリの消費がさらにシステムのキャッシングを圧迫するという悪循環。

普通はアプリケーションレベルでは間欠・逐次的な読み込みでも。
OSがHDなどと協力してアクセスのあったファイルを物理メモリに先読みしてるので
間欠シークは発生しない。

「特定の状況下」で「ハードからソフトまでを知り尽くした」上でのキャッシングは
当然否定しないし、むしろ俺の理解の及ぶ範囲ではないが。

# 窓達だとデフォルトでディスクキャッシュ用メモリの確保量が少ないから効果あるかもね。
0724nobodyさん2006/01/14(土) 23:03:58ID:???
>>723
前提がおかしくない?つーか自分に都合良い前提にしてない?
0725nobodyさん2006/01/14(土) 23:16:26ID:???
そんなつもりはないんだけれど。
どこが違和感あるのか言ってもらえんと説明のしょうが……
0726nobodyさん2006/01/14(土) 23:27:26ID:???
一般にプロセスは太ると死ぬまで痩せない。
理解が充分でない自覚がある場合はメモリを節約するアプローチで概ね間違わない気がするよ。
0727nobodyさん2006/01/14(土) 23:30:48ID:???
>>723 の言ってるのは
レン鯖で他のユーザの使用率とかも分からないのに
変に考えて小手先の技使ったって無駄ってことでは。

いまどきI/Oのアクセスをユーザが気にしなきゃならんOSなんて
レン鯖で使ってないよ。
しかも言語がPerlなんだよね。

頻繁に叩かれるスクリプトで、ガバッとメモリ喰うと
そっちの方でディスクにアクセスがかかるかも知れないってのを
心配してるんじゃないのかな。
0728nobodyさん2006/01/14(土) 23:36:57ID:???
ともかく変な思い込みでperlのメモリに乗せまくるなと
while( <$fh> )も結局は物理メモリのキャッシュから読み込んでる訳で、
遅くないから心配するなと。
0729nobodyさん2006/01/14(土) 23:39:43ID:???
遅い遅くないの前に、逐次処理しかできないのって不便じゃない?
それで済むならいいけどさ
0730nobodyさん2006/01/14(土) 23:40:09ID:???
鯖用途のHDだとHD内部のキャッシュメモリサイズも民生品とは桁違いだったり
0731nobodyさん2006/01/14(土) 23:49:08ID:???
>729
便利・不便じゃなくてシーケンシャルアクセスをどうやるかでしょ。

foreach( @ ) も foreach( <> ) もやりたい事は(多くの場合)シーケンシャルアクセス。
0732nobodyさん2006/01/14(土) 23:50:31ID:???
スクリプトで一番怖いのが、ファイルロックで
プロセスがプロセスキューに溜まる事だと考えてる。
ファイルリードより、スワップの方がコスト高そうだし。
だから、なるべく早くロックを開放することを考えてるよ。

でも、実際そこまで厳しい状態はほとんど知らないし、
そこまで考える必要があるかどうかは分からんけど。
0733nobodyさん2006/01/15(日) 00:01:11ID:???
Perl【の】コーディング【を】初心者【に】質問【する】スレ
0734nobodyさん2006/01/15(日) 00:04:02ID:???
先に読み込んでおいてからロック解除して後で書き込みロックするってことは
書き込み頻度低いってことでしょ?
(そうじゃなきゃ編集衝突するよね?)

メモリに展開する必要ないじゃん。
0735nobodyさん2006/01/15(日) 00:04:24ID:???
ロックは怖いね。
NASとか使ってると、鯖の構成とか製品によっては
フロントの鯖から、ロックファイルが見えるまでにタイムラグがあったりする。
0736nobodyさん2006/01/15(日) 00:04:59ID:???
みなさん色々ないけんありがとうございます。
読んでいった感じ、「メモリには優しく」 というのを感じました。

ただまた1つ疑問がw
DB 使ってるとして、巨大なテーブルが戻ってきちゃう場合はどうするんでしょ?
さすがにこれはしょがないんでしょうか・・・
0737nobodyさん2006/01/15(日) 00:07:52ID:???
SQLでLIMITとか使う
0738nobodyさん2006/01/15(日) 00:08:55ID:???
>>736
1. DB に処理できることは DB にやらせる
2. 表示なら巨大なものは最初から表示できないから無駄なものは取得しない

いずれでもない場合ってこと?
0739nobodyさん2006/01/15(日) 00:15:22ID:???
>736

普段どうやってDBアクセスしてるの?
まさか一度二次元配列にぶちこむとかやってないよね?
0740nobodyさん2006/01/15(日) 00:21:05ID:???
>739
いやDBは使ったこと無いです(興味あるっちゃありますが・・・)

>737,738
たとえば得られたテーブルが (巨大とはいえないけどとりあえず) 5項目程度で1000行だとして、
SQL文で500行目〜700行目だけ欲しいっていうことって出きるんですか?
出来るならそれで解決なんですが ^^;
0741nobodyさん2006/01/15(日) 00:23:02ID:???
>>740
> SQL文で500行目〜700行目だけ欲しいっていうことって出きるんですか?
できる
0742nobodyさん2006/01/15(日) 00:29:05ID:???
SQLの応答が巨大だからってそれが直にメモリに展開されるわけじゃないから
0743nobodyさん2006/01/15(日) 00:32:01ID:???
Perl側に持ってきちゃったら展開されると思うけど
0744nobodyさん2006/01/15(日) 00:39:40ID:???
>741
なるほろ。 解決しました
thx
0745nobodyさん2006/01/15(日) 00:40:24ID:xHRm9xcd
>>740
sql limit offsetあたりをキーワードに検索をかけると幸せになれるぞ。
つか、スレ違いっぽいな。
0746nobodyさん2006/01/15(日) 01:00:08ID:???
ああスレ違いだageんなバカ
0747nobodyさん2006/01/15(日) 01:05:57ID:a4Y6+QOP
>>746
そんなつまらん事なら書き込むな、このボケ。つか志ねよ。
0748nobodyさん2006/01/15(日) 01:06:45ID:???
>>747
はいはいわろすわろす
0749nobodyさん2006/01/15(日) 13:13:53ID:???
Perlについて学び始めの者ですが、SSIをHTML内に埋め込んだ様な使い方ができると知ってふと思ったのですが…

-sample.html-
<html>
<head>
<!--#exec cmd="sample.pl"-->
こんにちは
</body>
</html>

-sample.pl-
print"<title>sample</title>\n";
print"</head>\n";
print"<body>\n";

…これって良いのでしょうか?
Perlのパスも記述せず、文法的にも…
一応ちゃんと動作してるんですが、何か物凄く間違ってる気がしてなりません…。
0750nobodyさん2006/01/15(日) 13:27:44ID:???
>>610の話題はhttp://pc8.2ch.net/test/read.cgi/tech/1134327348/523-648のことだよね。
利点が分からないなら無理して使う必要はないし、お好みでどうぞ。
ちなみにCGI.pmは標準でインストールされていて、もし入っていなくてもCPANから落として@INC内に入れれば使えます。


# モジュールが重いとか言っていたら、DBIもJcodeもutf8も使っていられませんよ。CGI.pmが重いなら、MovableTypeを使うなんて論外ですね。
0751nobodyさん2006/01/15(日) 13:41:01ID:???
うわぶり返し(; ^ω^)
0752nobodyさん2006/01/15(日) 14:35:28ID:???
まだやりたらないみたいですね^^^
0753nobodyさん2006/01/15(日) 14:59:53ID:???
自演乙
0754nobodyさん2006/01/15(日) 16:34:25ID:???
>750

またおまえ「ら」かよ。いい加減なんちゃってモジュール使いたいがために
さるみたいにCGIモジュール直接読み込むのやめろ。な?

しかもそれで知ったかで質問にレスするし。
最悪。
0755nobodyさん2006/01/15(日) 16:41:10ID:???
まぁ通常の CGI では重たいモジュールの利用を避けるべき、という
のは分からなくもない(やりたきゃ自分でサーバ用意して mod_perl や
fastcgi でやれってこと)が、それならそれで適切な表現てもんが
あると思うがな。
0756nobodyさん2006/01/15(日) 16:43:02ID:???
「使いたくないやつは使わない」
それでいいじゃん
〜終了〜
0757nobodyさん2006/01/15(日) 16:44:34ID:???
>>754が必死な理由が全然ワカンネ
0758nobodyさん2006/01/15(日) 16:47:29ID:???
わざわざ車輪の再発明する理由はないけどね。
まぁCGIモジュールしか知らないなら使わないのは正解かもね。
0759nobodyさん2006/01/15(日) 16:50:52ID:???
>757

共有サーバーでみんなが右も左も解らず無駄にCGIモジュールをロードしたらどうなると思う?
0760nobodyさん2006/01/15(日) 16:54:23ID:???
まだやってたのかよ・・
0761nobodyさんNGNG
レン鯖でCGI動かすような環境でPerl勉強してたら敬遠するようになるだろうなー
0762nobodyさんNGNG
これだから「WebProg板は・・・」って言われるんだよな
0763nobodyさん2006/01/15(日) 17:25:16ID:???
先程から拝見していましたが、
結局クエリ読み取るときにはどうすればいいんでしょうか。
教えてください。
0764nobodyさん2006/01/15(日) 17:34:06ID:???
>>763
ラクダ本読め
以上
0765nobodyさん2006/01/15(日) 17:37:39ID:???
ラクダ本て
えらい遠回りな
0766nobodyさん2006/01/15(日) 18:21:55ID:???
>>763

use CGI::最小限;
0767nobodyさん2006/01/15(日) 18:30:31ID:???
>>763
迷うならCGI.pm使う。
パフォーマンスを追及したかったら思ったらCGI::minimalをインスコして使う。

根拠はperlfaq9
http://www.kt.rim.or.jp/%7Ekbk/perl-5.8/perlfaq9.html#how_do_i_decode_a_cgi_form
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq9.html#How_do_I_decode_a_CGI_form_
0768nobodyさん2006/01/15(日) 19:24:47ID:???
微笑ましいレスだな。
0769nobodyさん2006/01/15(日) 19:54:25ID:???
GETしか使わないからURL::Queryに突っ込んでる。
0770nobodyさん2006/01/15(日) 20:39:21ID:???
自分の意見を押し通さないと満足しない厨房たち(笑)
0771nobodyさん2006/01/15(日) 20:41:22ID:???
いろんな方法が表に出てくるのはいいことだ
0772nobodyさん2006/01/15(日) 20:45:26ID:???
sub decode {
  binmode(STDIN);
  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;

    $in{$name} = $value;
  }
}
スクリプト書くたびにコレを書いてる
マルチプル、マルチパートなんて使わないのでこれで十分事足りてる
0773nobodyさん2006/01/15(日) 20:57:56ID:???
>>772

590 549 sage 2006/01/13(金) 12:44:01
>>568
説明すると長くなるから
ttp://perldoc.jp/docs/perl/5.6.1/perlfaq9.podの
How do I decode a CGI form?の項を1000回読め。
とほほのコードがどうしてまずいのかがよ〜く解るだろう。

ついでにCGI.pmはpure perlだから読んでみるとよかろう。
もし君が解読しきれなくても本当に正しくフォームデコード
するというのはどんなに大変なことなのかぐらいは解るだろう。

CGI/util.pmのunescapeメソッドを読むだけでも君は
ここで「とほほのコードはWebProg板では普通のコード」
と言い切ってしまったことをとても恥ずかしく思うようになるはずだ。

cgi.pmのマニュアルがよく解らないというのはオブジェクト指向や
参照渡しがよく解ってないからじゃないのかな。
cgi.pmにはcgi-lib.plもどきの関数インターフェースもあるので
Webを漁って探してみてくれ。日本語訳もあるよ。

まあ頑張れ。
0774nobodyさん2006/01/15(日) 21:20:06ID:???
>>773
まずレス先をきちんと明示できるように「掲示板の書き方」勉強してみるべき
日本語も不自由でかわいそう・・・
0775nobodyさん2006/01/15(日) 21:22:56ID:???
readのエラーチェックとかアホみたいだな
エラーチェックしなかったら、どうなるんだってのw
0776nobodyさん2006/01/15(日) 21:30:59ID:???
俺仕様で不備が指摘されても開き直る人
0777nobodyさん2006/01/15(日) 21:34:52ID:???
反論されて耳が真っ赤でイライラして、必死に言い返す言葉を模索中の>773
0778nobodyさん2006/01/15(日) 21:35:18ID:???
いいかげんパラメータ区切り;に改善しろよ。
0779nobodyさん2006/01/15(日) 21:37:12ID:???
そして平然を装って書き込む>778=773
■ このスレッドは過去ログ倉庫に格納されています