Perlコーディング初心者質問スレ Part 49
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/05/31(水) 04:32:28ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0583582 583
2006/06/18(日) 02:13:02ID:LFB3TFsx$delfile = sprintf(
"$LOGPATH%04d%02d%02d.dat", $year, $mon, $mday);
となぜ形成してるんでしょうか??
消すためにはいちいち作らないとだめなんでしょうか??
これを消したとしても$logfile にログは残るんじゃないでしょうか??
0584nobodyさん
2006/06/18(日) 02:38:28ID:???$logfile と $delfile はファイル名が違う。
$logfile は新規のログのファイル名
$delfile は何日か前のログのファイル名
コメント読もうよ。
> # 古いログファイルの削除
とあって、
> $tm -= $EXPIRES * 60 * 60 * 24;
で数日前の日付を出してる。
0585583
2006/06/18(日) 03:08:41ID:Kocek/q+古いファイルを作ってなぜまた消すんでしょうか?
0586nobodyさん
2006/06/18(日) 03:11:44ID:???どこで古いファイルを作っていることにしたいんだろう。
0587nobodyさん
2006/06/18(日) 03:16:15ID:Kocek/q+0589nobodyさん
2006/06/18(日) 03:23:31ID:???0590nobodyさん
2006/06/18(日) 03:24:41ID:???不要なログファイルがドンドン溜まっていきそうな気が・・・
0592nobodyさん
2006/06/18(日) 03:57:55ID:???"$LOGPATH%04d%02d%02d.dat", $year, $mon, $mday);
で3日前のファイル名を$delfileに入れている。
unlink $delfile;
で3日前のログファイルを実際に消している。
>>$logfile にログは残るんじゃないでしょうか??
それはその日のログなので残してOK
0593nobodyさん
2006/06/18(日) 07:30:51ID:???あ、hashが先か
なぜhashを連想と訳すのでしょうか
どうして? 細切れ=連想なの? 教えて!
0594nobodyさん
2006/06/18(日) 09:14:10ID:???あと正確には 連想配列=hash変数 ではない。
0595nobodyさん
2006/06/18(日) 11:00:31ID:???0596nobodyさん
2006/06/18(日) 11:21:18ID:???perl の連想配列は内部でハッシュ法が使われているからだろうけど、
配列みたく入れた順番に取り出せないし、みんな区別して ハッシュ って呼ぶ気がする。
0597nobodyさん
2006/06/18(日) 12:02:53ID:Kocek/q+>>582ー592まで質問してたんですが
古いログはlogsというファイルに残ったままにならないんでしょうか?
0598nobodyさん
2006/06/18(日) 12:13:01ID:???>584-592を百回読み直せ。それでも理解できないようならとっとと市ね。
0599nobodyさん
2006/06/18(日) 12:16:51ID:Kocek/q+0600nobodyさん
2006/06/18(日) 17:41:34ID:???ファイルから文章を読み出して正規表現でマッチングしようとしてるんですが
「ー」文字が入る単語をマッチング条件とするとエラーがでてしまいます。
-wcコマンドで実行するとSyntaxOKとでてます。
perlのバージョンは5.8.8です。
$word = 'マリオブラザーズ';
while (<INPUT>) {
if (/^\.([^\n]+),$word\./){
〜〜〜〜〜
}
}
読み込みファイルの内容
.data1,data2.
.任天堂,マリオブラザーズ.
.ああああ,えええええ.
〜
〜
前後についてる..は正規表現を使いこなせない証でしょうか…マッチングするために付加しています。
これで任天堂を$1で取り出したいんですけど$wordに「ー」含んだ単語設定すると
以下のようなエラーがでます。data2、ええええを入れた場合は、意図した通りにdata1とああああが$1に入ります。
C:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin>perl search.cgi
Unmatched [ in regex; marked by <-- HERE in m/^\.([^\n]+),マリオブラザー <-- HER
E ズ./ at search.cgi line 43, <INPUT> line 1.
原因がまったく分からず困っています。どなたかご教授下さい。
0601nobodyさん
2006/06/18(日) 17:42:09ID:???0602nobodyさん
NGNG0603nobodyさん
2006/06/18(日) 17:52:27ID:???参考になりそうなサイトをいくつかググって探せたので、調べながら頑張ってみます。
ありがとうございました
0604nobodyさん
2006/06/18(日) 18:24:16ID:???ハッシュに格納してそこからCSVに出力したいのですが、
ハッシュからキーとデータをCSVに出力すると順番がランダムになってしまいます。
キーとデータを自分の意図した順番通りにCSVに出力するにはどうしたらいいのでしょうか?
sort関数を使用しても辞書順にしかならないので、意図した通りの順番で
CSVに出力することが出来ません。
どなたかアドバイスをください。よろしくお願いします。l
0605nobodyさん
2006/06/18(日) 18:27:52ID:???1. 並べたい順にキーを並べた配列を作る
2. 1. の配列をforeach か何かで回してハッシュを引く
3. CSVに出力
0607600
2006/06/18(日) 19:21:32ID:???フォームからcgi起動してフォームから送られた単語に基づいて検索するサイトを作ってたんですけど
アドバイス頂いた事を元に、cgiとHTMLフォームのソース、検索元csvファイルをEUC-JPに変換したらうまくいきました。
初歩的な質問だったようですけど、お答えいただきありがとうございました。
0608nobodyさん
2006/06/18(日) 20:05:50ID:???ユーザ入力をメタキャラクタも含めてそのままパターンに取るような CGI を晒しておくと、イイカンジにアッー! されて色々と被害をまき散らしたりするんで安全性について要再考。取り急ぎ。
0609nobodyさん
2006/06/18(日) 20:27:30ID:???気をつけます。調べてみたんですが、
つまりデータとしてとりたい文字列がperlプログラム上で特別な意味を持つ文字になってしまって
プログラムが意図しない動作をする可能性があるってことですよね
0610nobodyさん
2006/06/19(月) 12:44:33ID:???連想配列(associative array)をラリーウォールが勝手にhashと名づけた。
けど、それに賛成できない訳者がそのまま連想配列と訳した、とか?
0612nobodyさん
2006/06/19(月) 14:36:59ID:???、とか?
、とか?
妙な推測するほうもアレだが
釣られるほうもアレ。
0614nobodyさん
2006/06/19(月) 14:38:47ID:???0615nobodyさん
2006/06/19(月) 14:40:28ID:???0616nobodyさん
2006/06/19(月) 15:13:28ID:???open(FILE, "$file") or die "エラーだ";
みたいな感じでdie使うもんだと思ってて深く考えたことなかったんだけど
これって、何かモジュール入れてないとエラーメッセージは表示できない?
単にInternal Server Errorが返されるだけなんだけど。
0617nobodyさん
2006/06/19(月) 15:15:58ID:???理解の方向性は合ってます。ただ危険性のレベルは一般にもっと高いです。
特に Perl の場合、値をそのままパターン内で展開する、ということは「任意のコードが実行できる」と同義なので大変危険です。
0618nobodyさん
2006/06/19(月) 15:17:21ID:???そういう問題じゃないんだけど…。
エラーメッセージはサーバのログに吐かれてる。
ブラウザに出したいなら自前でエラー処理書いて、dieじゃなくてexitする。
ちなみにその$fileをダブルクォートで括る必要は全くない。
0619nobodyさん
2006/06/19(月) 15:32:57ID:???あぁ、なるほど。die以下のメッセージはサーバのログに出てるだけだったのか。
じゃあ、レンタルサーバで不特定多数が使うcgiの場合には
dieより自前で用意したエラー処理に飛ばす方が良いってことか。
>ちなみにその$fileをダブルクォートで括る必要は全くない。
でも、シングルクォートとかダブルクォートとかで括ってるの多い気ガス。
単に好みの問題?
0620nobodyさん
2006/06/19(月) 15:35:50ID:???oioi
0621nobodyさん
2006/06/19(月) 15:36:41ID:???漏れも先日までそう思ってたんだがな、実際にやって見れ。
安全措置が施されていて、use re 'eval';しないとデフォルトでは動かないんだこれが。
まあ、汚染された正規表現を実行するなんて真似は、やっぱり止めておいたほうが良いのは確かだと思うけれど。
>>619
とりあえず公式にも非推奨。
ttp://www.kt.rim.or.jp/%7Ekbk/perl-5.8/perlfaq4.html#what_s_wrong_with_always_quoting__vars
これをわきまえた上で、好みをとりたいと言うのであれば何も言うまい。
0622nobodyさん
NGNG0623616=619
2006/06/19(月) 15:49:01ID:???>>621
なななるほど。そう言われてみれば、そうだ。
とりあえずダブルクォートで括ってみた。
中身は何でも良かった。今は反省している。
>>622
標準装備にそんなのあったんだ。
で、実際のところdieで>>622のモジュール使うのと
自前でエラー処理用意して飛ばすのと、
どっちが一般的なんだすか?
いや、それこそ好みの問題かもしれないけど。
0624nobodyさん
2006/06/19(月) 15:52:21ID:???0625nobodyさん
2006/06/19(月) 15:54:57ID:???CGI.pm を使う書き方をしてるのであれば、>>622 で良いんじゃないかな。
die のメッセージをHTMLで吐いてくれるし。
ただし、エラーがあってdieしてもHTTP的に50x系のエラーにならないのと、
デバッグが終わったら >>622 は外さないといけない事に注意。
エラーメッセージを見せるのは、セキュリティー的によろしくない。
0626616
2006/06/19(月) 16:05:52ID:???アドバイス感謝です!
>エラーメッセージを見せるのは、セキュリティー的によろしくない。
言われてみればグレート当たり前のことだよね。でも、この視点完全に欠落してた…。
フォームの入力値のエラーなんかと同様に、エラーだったら何でもかんでも
ブラウザで教えてあげるのが、イケてると思ってた…。
ここは本当に恐ろしい知識の泉でつね。
オレ、今、かなり賢くなってる。
0627nobodyさん
2006/06/19(月) 16:06:51ID:???0628nobodyさん
2006/06/19(月) 16:12:56ID:???0629nobodyさん
2006/06/19(月) 16:21:34ID:???danのblogでも少し前に話題になってたと思うんだけど(探すの面倒くさいんで自分でやってね)、
Perl4まではPerlでも連想配列 (Associative Array)と呼んでいた。
連想配列という言葉は、この「Associative Array」という語に
対応したもの。この時点ではハッシュは関係ない。
PerlのAssociative Arrayは直接には awkのそれからきたものだと
思われるけど(awkでも Associative Array = 連想配列と称される)、
多分 IconとかSnobolの表が祖先じゃないかと思う。
で、Perl5.000になった時点で、Larry Wallが「Associative Arrayってさ
長いから書くのも読むのも面倒じゃん、Hashって呼ぶことにしようよ」
ということで呼称がハッシュに変わったのね。で、それはAssociative Array
を実現するのにハッシュ法を使っていたから。
Programming Perl (第一版 赤本ね)には実際次のような記述がある(訳本の37ページ)。
1.5 連想配列
この章の最後を締めくくる話題は連想配列(associative array)である。
(略)
連想配列は、添え字として任意の文字列を指定できるという点を除けば、
普通の配列と何ら変わらない。連想配列から得られたエントリは文字列で
あってもよいので、任意の文字列の対をたがいに関連づける(associate)ことが
可能である -- これが連想配列(associative array)と呼ばれる理由である。
呼称をハッシュに変えた理由も、Programming Perlの第二版(青本の分冊になっていない方)に書かれていたと思うんだけど、本が見つからなかったので
紹介できん。スマン。
0630616
2006/06/19(月) 16:53:42ID:???は通るけど、
open(FILE, +< $file);
はダメなんだね。入出力の記号を付けるときはダブルクォート必須?
なら、
open(FILE, $file);
は
open(FILE, "< $file");
と同じだから、やっぱ
open(FILE, "$file");
と書くのが正しいんじゃね?とか思ってしまうんです。
それとも記号の付け方がおかしいのか??
そこんとこもう少しヒントを!
0631nobodyさん
2006/06/19(月) 16:56:54ID:???Programming Perl(第二版:青らくだ本)の日本語版8ページから引用
1.2 自然言語と人工言語
ハッシュ:ハッシュ(hash)は、順序付けられていないスカラーの集合で、
各スカラーに関連付けれれた文字列によってアクセスされる。
そのためハッシュは「連想配列」(associative array)と呼ばれることもある。
しかし、これは怠惰なタイピストにとってタイプするのが面倒だし、
頻繁に使われるので、私たちはもっと短くて、ぴりっとした(snappy)呼び名を
付けることにしたのだ。
ということらしい。
0632nobodyさん
2006/06/19(月) 17:15:39ID:5NRkvew2昨日みたいに2ちゃんが落ちるとCGIが止まってしまいますよね?
落ちてる時の回避方法ありますでしょうか。。。
sub checkProxyList{
my $RADDR = $ENV{'REMOTE_ADDR'};
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.niku.2ch.net";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
if ($addr eq '127.0.0.2'){print_error("PROXY ERROR")}
}
0633nobodyさん
2006/06/19(月) 17:17:11ID:???これじゃ、質問の答えにはなってないと思うが
> open(FILE, +< $file);
perlfunc嫁。modeは別の引数に出来る。
open(FILE, '+<', $file);
0634nobodyさん
2006/06/19(月) 17:19:08ID:???試してないがNet::DNS使えばタイムアウトの設定が出来るんじゃないか?
ttp://search.cpan.org/~olaf/Net-DNS-0.57/lib/Net/DNS.pm
0636nobodyさん
NGNGあんま信用しない方がいい
実際にやってみれば分かると思うけど
0637616
2006/06/19(月) 17:37:51ID:???別の引数にしたら…??
すません。よく分かりません。
open(FILE, "+< $file");
は正しくなくて
open(FILE, '+<', $file);
が正しい書き方ってこと??
0640nobodyさん
2006/06/19(月) 17:48:45ID:???>open(FILE, "+< $file");
いや、これでも正しいよ。
openの引数をいくつにするかってだけだから。
ただ、"$file" は無駄やってるよってこと。理由は >>621 のリンク参照。
0642616
2006/06/19(月) 18:06:04ID:???なぁんとなく解ってきたようなきてないような。
$hoge = '質問スレ';
print "初心者$hoge";
と書くのは正しいけど、
$hoge = '初心者質問スレ';
print "$hoge";
と書くのは厳密には正しくない、みたいなことかな。
上の例で言えば、どうしてもダブルクォートで揃えたいなら
open(FILE, "$file");
とは書かず
open(FILE, "< $file");
と書いた方が文法的(?)にはオケってことか。
ちょっとスッキリした。サンキューです!
0643nobodyさん
2006/06/19(月) 18:18:13ID:???いや、正しい正しくないの話じゃなくて。例えば、0から9まで処理するときに
for my $i (0..9) { }
と書いても、
{ my $i = 0;
while ($i <= 9) { }
continue { $i++ }
}
と書いても文法的には正しいし、同じように動くけれど、
前者のほうが無駄が無いし、間違い起こしにくいでしょ?みたいな話かと。
0644nobodyさん
2006/06/19(月) 18:24:02ID:???> print "初心者$hoge";
これも
print '初心者', $hoge;
こうか
print '初心者' . $hoge;
こう書かない?
0645616
2006/06/19(月) 18:43:23ID:???そっちの解釈か!
ロクに入門書も読まず他人様の書いたコードを切ったり貼ったりしながら
適当に「学んだつもり」になってた人種にとっては耳の痛いお話ですわ。
システム面でのエラーが起こりにくい無駄のない書き方に拘泥して
稚拙なヒューマンエラー続発とか…自分には有り得そうで怖いなぁ。
とは言っても、そんなんでは進歩はないので心掛けて書き直すかな!
>>644
例が悪かったかもかも。
print "<SPAN STYLE=\"color:$hoge\">2ちゃんねる</SPAN>";
みたいなのを想定で。
0646nobodyさん
2006/06/19(月) 18:46:17ID:???0649nobodyさん
2006/06/19(月) 19:10:40ID:???んー。他の人も言ってるけどちと違う。
別にどっちで書いても文法的には正しいし動作もする。
"$file" みたいにダブルクォートで括ると(無名の)「文字列の生成」が起こる。
内容は$fileと全く同じ。
だったら新しく生成しなくても良いんじゃないの?って話。
同じもの2個作ってどうするよ。無駄だよね。
しかも、 open(FH, "$file"); じゃ、生成した所ですぐに使い捨て。
だったら open(FH, $file); の方が無駄な変数作らなくて良い。
まぁそんだけだけど。
0650616
2006/06/19(月) 19:41:40ID:???>"$file" みたいにダブルクォートで括ると(無名の)「文字列の生成」が起こる。
!!
先生『週刊そーなんだ』にも掲載すべきだと思います。
懇切丁寧な説明により、ようやく合点がいきました。
しかし、ラクダ本読むのには時間もだけど体力要るな…。
0651nobodyさん
2006/06/19(月) 22:55:15ID:Fr5nT8/Wちょっと知り合いのサイトを作ってあげよかなと思いまして、
いろいろ遊びたいのでとりあえず全部のページをCGIにしようと今メモ帳を眺めてるのですが。
プログラム本体にHTMLを書いていくとなんか物凄く長くなってしまいますよね。
でも10ページくらいでも1000行くらいは簡単に超えますね。
なんかそのやり方がすきになれないのですが、かといって.txtにhtml本文を書いておいて
読み込み手法も納得いかない。
出力内容を作成するルーチンだけ.plで別にしても結局はイマイチ。
読みやすく拡張しやすくスッキリとした手法をかなり神経質なレベルで考えていますが、
アドバイスもらえたらとおもって投稿しました。
少しコーディングから離れるというか、前段階の話になるので気が向いた方だけで
かまいませんので宜しくお願いします。
0652nobodyさん
2006/06/19(月) 23:06:33ID:???とりあえず HTML::Template でも使っとけ
0653nobodyさん
2006/06/19(月) 23:08:51ID:???最近Catalystばかりなのでわかんね。
0654651
2006/06/19(月) 23:12:39ID:Fr5nT8/WHTML::Templateは知っていますが、そういうことではないんです。
うまく説明できませんのでスルーしてもらってもm(__)mごめんなさい。
例えば普通にhtmlファイルのまま全部のページを公開してるとしますよね。
10ページだろうが100ページだろうが、拡張していくときに面倒はありませんし、
把握もとても単純なんですよね。
それをCGIにするとイマイチなんです。
スマートじゃなくなるというか。ゴミゴミするというか。
もちろん同じフォーマットの文章だけ違うような場合はいいのですが。
それぞれのページで違いますので。
0655nobodyさん
NGNG0657617
2006/06/20(火) 00:38:01ID:???> 安全措置が施されていて、use re 'eval';しないとデフォルトでは動かないんだこれが。
ウホッ! ありがと。
0658nobodyさん
2006/06/20(火) 01:00:18ID:???他を選択する合理的な理由がない場合、ファイルオープンには常に 3引数の open を使うのが良い習慣だと思います。
正しくは、「どんな場合でも、その必要がなければ 2引数の open を使わない」なんだけれど。
0659nobodyさん
2006/06/20(火) 01:21:04ID:???・共通する部品と各ページに固有の部品をそれぞれ抽出
・各部品をファイルに保存 # この時、プログラムから利用しやすい形で保存しておく
・CGI が叩かれた時に必要な部品を読込み、それらを組み合わせて返す
全リソースが静的なら、こーゆーのは SSI の仕事で CGI でやるメリットはないと思う。
抽出の粒度と保存スタイルさえ適切ならディスクの節約にはなるかもね。
0660nobodyさん
2006/06/20(火) 01:29:57ID:???ヒアドキュメント使えば、表示したいHTML+5行ぐらいでcgiに出来ますよね?
”拡張性がある”というのをどういう状況を指して言ってるのか分からないですが、・・・
0661nobodyさん
2006/06/20(火) 03:32:08ID:???Perlの練習の意味を込めて、今現在CGIでホームページを作成しています。
(ただ単に、HTMLを出力するだけのCGIです)
そこで質問なのですが、
「http://yomi.pekori.to/s/yomi.cgi?mode=kt&kt=02」の用な感じにページを分けたいのですが、考え方が分かりません。
自力で「http://yomi.pekori.to/s/yomi.cgi?mode=kt」まで分けることはできるのですが、
その後にさらに「&kt=02」を足して
「http://yomi.pekori.to/s/yomi.cgi?mode=kt&kt=02」というページを作成する方法が分かりません・・・ orz
正直、自分でやってもうまくいかないし、何て検索していいのかも分からず途方に暮れています・・・
よろしくお願いします。
0662nobodyさん
2006/06/20(火) 03:59:35ID:???CGI.pmを使ってるならparam('mode')、param('kt')で欲しい値が取れる
ので、それを条件にかければOK
0663nobodyさん
2006/06/20(火) 04:48:28ID:???自分のスクリプトではこんな感じにしてます。
$template{'##TITLE##'} = "TEST";
$template{'##CONTENTS##'} = "本文";
&templateprint("template.html", %template);
sub templateprint{
my($inputfile, %data) = @_;
my($templatetext);
if(open(FHTEMPLATE, $inputfile)){
read(FHTEMPLATE, $templatetext, (-s FHTEMPLATE));
close(FHTEMPLATE);
while (my($pos, $val) = each %data){
$templatetext =~ s/$pos/$val/gi;
}
}
print $templatetext;
}
※ ここに貼り付けるにあたってエラー処理とかはばっさり削除してます
0664nobodyさん
2006/06/20(火) 07:13:05ID:???テンプレート使うとかブラウザからページ作成する、とかでない限り無駄でしかないんだけどw
0665nobodyさん
2006/06/20(火) 07:27:32ID:???あと HTML 編集時のミスも極力防げるし。
サーバーの負担以外はプラス面ばかりだとは思う。個人的にはだけどね
0666651
2006/06/20(火) 08:03:26ID:5983Ww81例えば10ページ分を一つのファイルにまとめると物凄いうざくなりますよね。
HTML自体が長くても所詮は.htmlで保存公開してるならスッキリ感があるんですが、
それをひとつのファイルにまとめると最悪な感じなんです。
html的に最悪ということです。
見渡しにくいコード・ソースというのが嫌いなのです。
逆に外部ファイルが10個も20個もあるのもイヤなんです。
というジレンマなんです。
0667nobodyさん
2006/06/20(火) 08:27:29ID:???デザインなんてCSSファイル変えるだけじゃん。
テーブルレイアウトやってるならあれだけどね。
>>666
CGI でやること自体見渡しにくいし、何kbのCGIファイル作る気だよ・・・
テンプレートは嫌だって言うし・・・
もう、あれだ、perl より php でやったらw
0668nobodyさん
2006/06/20(火) 09:59:21ID:???普通に1つのページに対して、1個のCGIにすれば?
というかperlはヒア演算子があるから、既にHTMLが出来てるなら、
#!/dir/perl
print <<HTML;
content-type:xxxx
HTML
で、とりあえずすぐにcgiになる。で、なんか動的要素追加したかったら
前の部分にちゃちゃっと書けば、ある程度拡張できるし・・・
というか何を目指してるのかがいまいち分からない・・・
0669nobodyさん
2006/06/20(火) 10:21:31ID:???10ページ分のHTMLを一つのCGIファイルにまとめてたい。
でも、大きくなって見通しも悪いのでどうにかしたい。
複数ファイルは死んでも嫌。
回答:
HTML::Templateは変数にテンプレート入れて動かせるよ。
0671nobodyさん
2006/06/20(火) 11:57:30ID:???0672nobodyさん
2006/06/20(火) 11:57:50ID:???0673nobodyさん
NGNG動的なページっぽく見せてるお^^
0674nobodyさん
2006/06/20(火) 12:20:28ID:5Ut+7oeuセグメンテーションエラーになってperl.coreというファイルを吐いて死んでしまいます。
perl.coreというファイルは何に使うのでしょうか?
0675nobodyさん
2006/06/20(火) 12:26:38ID:???[ケース1]
Perlを熟知しているが無意識に「Perl(CGI) > HTML」というイメージにとらわれている。
[ケース2]
Perlはそこそこできるが、HTML::Templateについて実はよく理解していない。
[ケース3]
Perl習いたてで、Perlを万能低級言語であるかのような錯覚に陥っている。
[ケース4]
HTML、CSS、JavaScriptについて実はよく理解していない。
[ケース5]
そもそも、対象としているHTMLソース自体が汚いから誰がやってもまとまらない。
0676nobodyさん
NGNGアセンブラの知識があれば読めます
0678nobodyさん
2006/06/20(火) 12:39:34ID:???0679674
2006/06/20(火) 12:49:03ID:5Ut+7oeuとでています。
perl -dでデバッグを行ってみたのですが、ある部分でずっとCPUを100%使い切ったまま止まっているように見えます。
このperl.coreはどのように役立てればよいのでしょう?
ググっても参考になる情報が載っていないので‥
0680nobodyさん
NGNGデバッガ使って読んで下さい
0681nobodyさん
2006/06/20(火) 14:11:30ID:T0oahEq/ファイル($log)の中身を1行ずつチェックしながら処理する場合、
open ( FH, $log );
と開いたとして、
@array = <FH>;
$limiti = @array;
while ( $limiti > 0 ) {
処理;
$limiti --;
}
とするのと
while(<FH>){
処理;
}
とするのは同じこと?
どっちでもできるなら後者の方が無駄な変数無い分よろしい?
0682nobodyさん
NGNG■ このスレッドは過去ログ倉庫に格納されています