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

CGIだけどなんか質問ある Pert 5.01

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/03/03 12:49ID:673UxTI5
print"くだらない質問はここにかけや!";

011675とか02/03/05 05:47ID:???
上の行まで行くってどういうことだYO!!
意味わかんねーYO!
0117nobodyさん02/03/05 05:48ID:???
直後に一時ファイルへの書きこみがあるからつぎのように書き換えちまえ!!
$SEPA= '^K'; ## ADD NEW
$FORM{'message'}=~ s/[\x0a\x0d]+/<BR>/g; ## ADD NEW
open(OUT, "> wwwboard.tmp");
print OUT join($SEPA,"$yy年$mm月$dd日","$jj時$ff分$bb秒",$FORM{'from'},$FORM{'message'},"\n"); ### ADD NEW
=comment1
print OUT "$yy年$mm月$dd日\n";
print OUT "$jj時$ff分$bb秒\n";
print OUT "$FORM{'from'}\n";
print OUT "$FORM{'message'}\n";
print OUT "<!-- end of comment -->\n";
=cut
0118nobodyさん02/03/05 05:49ID:???
>116
オマエのファイルに同じ部分があるだRO-!
011975とか02/03/05 05:54ID:???
>>115の5行を>>117の12行に書き換えるってーことKAI?
012075とか02/03/05 05:56ID:???
いや間違ったZO!わかる!わかるぞ!
ただ、うまくねーNA!
0121nobodyさん02/03/05 05:56ID:???
5行じゃネーゼ6行ダゼ! 以下の行を117と置き換えろ!!
open(OUT, "> wwwboard.tmp");
print OUT "$yy年$mm月$dd日\n";
print OUT "$jj時$ff分$bb秒\n";
print OUT "$FORM{'from'}\n";
print OUT "$FORM{'message'}\n";
print OUT "<!-- end of comment -->\n";
0122nobodyさん02/03/05 05:58ID:???
=comment1 から =cut まではコメントだから消してもいいけどYO−!
念のために残しているこのおくゆかしさってなもんDA!!
0123nobodyさん02/03/05 05:59ID:???
書き終わったか?
まだつづくからYO!!
油断すんな!!!
012475とか02/03/05 06:03ID:???
ちょっと待てYO!確認なんだがYO!
こうなるとYO!
データファイルの構造が変わるべNA!
0125nobodyさん02/03/05 06:03ID:???
次に以下の行まで移動してみRO!!

open(IN, "wwwboard.dat");
while (<IN>){
   print "<div align=\"left\" class=\"normal\">\n";
   $date=$_; $time=<IN>;
   $from=<IN>;
   chomp($from);
0126nobodyさん02/03/05 06:05ID:???
>124
そうDA!!
1行に1データを書くからナ!
よく気づいたナー!!
0127nobodyさん02/03/05 06:08ID:???
127まで移動したらヨー!ファイル開いた直後に以下を書き足してみろってんDA!
これで最新データの取得ダゼ!!どうだいかしてるDARO? 一応、変数名は整合性がとれる
ように合わしてやったからヨー

chop($_=<IN>);
($date, $time, $from, $_)= split($SEPA, $_, 4);
012875とか02/03/05 06:09ID:???
まじでかー
実はYOー!この掲示板にはYO!もう一つ秘密のモードがあってYO!
そっちでもっとめんどくさいことになってるんだっPE!!
データ構造変えない方法はないかYO!
またはよ、データ内にタグを書かない方法はないかYO!
ないならしょうがないから秘密モードの仕様変更するからいいけどYO!!!
0129nobodyさん02/03/05 06:09ID:???
127じゃネーゼ! 125のまちがいサー!!
013075とか02/03/05 06:12ID:???
おっと、しかし、>>127はちょっとイカしてんナ!!
0131nobodyさん02/03/05 06:14ID:???
乗り気じゃネーのKA?
もちろんまだつづくけどヨー!
やめるんならいまのうちだZE!
やるんなら読み書きぐちをチョット変更して同じ変数にぶち込んで出力も同じようにする
だけだから難しくはないだローヨ!
それとも大事なデータが既に大量に存在するとかKA?
013275とか02/03/05 06:15ID:???
$SEPAってなんだよ!!イカしてるゼ、まじ!
013375とか02/03/05 06:17ID:???
いや、つづけてクレ!!こっちのほうが楽そうだZO!!
0134nobodyさん02/03/05 06:20ID:???
127がおわったら、次も書いておく

print qq(<div align="left" class="normal">\n);
s/</&lt;/g; s/>/&gt;/g;
print "$_<br>\n";
print qq!<div align="right" class="small">$from $date($time)</div>\n!;
print qq(<img src="graphics/dot.gif" height="30">\n);

これが終わったら whileループの読み出し・出力が終わったことになるからヨー!
またコメントししておけ!!
013575とか02/03/05 06:22ID:???
じゃあwhileループは全部イランということだナ?
0136nobodyさん02/03/05 06:23ID:???
そういうことDA−ZE!
013775とか02/03/05 06:25ID:???
なんかすげーナ!print qqってーのは"の前に\がイランのカ!
0138nobodyさん02/03/05 06:26ID:???
次も同じようにデータを読み込んでいる以下の部分があるからとっとと移動しておけ!!

if ($QUERY{'page'}==0) { #ページ指定がなければ発言リストを出力
   $title = "<div align=center>最新の15件</div><br>";
   &jcode::convert(\$title, 'sjis','euc');
   print "$title";
   $end_count=0;
   while(<IN>){
013975とか02/03/05 06:32ID:???
移動してるっぺな!!
0140nobodyさん02/03/05 06:32ID:???
while ループ内は以下のようになるってなもんDA!!

while(<IN>){
chop($_=<IN>); ### ADD NEW
($date, $time, $from, $_)= split($SEPA, $_, 4); ### ADD NEW
# $date=$_;
$date =~ s/(\d+)年(\d+)月(\d+)日/$2月$3日/g;
# $time=<IN>;
$time =~ s/(\d+)時(\d+)分(\d+)秒/$1時$2分/g;
# $from=<IN>;
# while (1) {
# $_=<IN>;
# if ($_ =~ /^<!-- end of comment -->/) {last;}
# }
014175とか02/03/05 06:35ID:???
最初に一行入るだけかYO!
0142nobodyさん02/03/05 06:40ID:???
>140
チョット間違いDA!!
chop($_=<IN>); ⇒ chop;
たまにはわざと間違うからYO-!
014375とか02/03/05 06:40ID:???
おお、いっぱい削除しとるんかいっ!!!
014475とか02/03/05 06:42ID:???
わざとかい!だろーと思ったゼ!
0145nobodyさん02/03/05 06:48ID:???
次はナー! 以下の行へ飛んじまえ!!
面倒だから字下げは省略だ!

} else { #ページ指定があれば指定ページまで飛ぶ
if ($QUERY{'page'}>15) {$QUERY{'page'}=15};
$end_count=0;
while(1){
if ($end_count>=($QUERY{'page'}-1)){
last;
}
0146nobodyさん02/03/05 06:50ID:???
この無限ループ内は以下のように書きサラセ!!

while(1){
if ($end_count>=($QUERY{'page'}-1)){
last;
}
$_= <IN>; $end_count++; ### ADD NEW
# if (<IN> =~ /^<!-- end of comment -->/) { # コメントの終端を判定
# $end_count++;
# }
}
014775とか02/03/05 06:55ID:???
はっはっは!すげーすげーZO!!
0148nobodyさん02/03/05 06:56ID:???
146の直後はつぎのようになるからヨーク目をこらして見サラセ!!
これで else ブロック内まで書き終わったことになるから覚悟しRO!

chop; ### ADD NEW
($date, $time, $from, $_)= split($SEPA, $_, 4); ### ADD NEW
s/</&lt;/g; s/>/&gt;/g; ### ADD NEW
=comment3
$date=<IN>;
$time=<IN>; #時間(使わない)
$from=<IN>;
while (1) {
$_=<IN>;
if ($_ =~ /^<!-- end of comment -->/) {last;}
=cut
&jcode::convert(\$_, 'sjis','euc');
=comment4
$_ =~ s/<!--/&lt;!--/g;
$_ =~ s/-->/--&gt;/g;
$_ =~ s/&/&amp;/g;
$_ =~ s/"/&quot;/g;
$_ =~ s/</&lt;/g;
$_ =~ s/>/&gt;/g;
print "$_<br>\n";
}
=cut
&jcode::convert(\$from, 'sjis','euc');
print "$_<br>\n"; ### ADD NEW
print "<div align=\"right\">$from</div>\n";
0149nobodyさん02/03/05 07:00ID:???
っと、どうやら終わったようだナ!
まあ、実際に動作させてないから間違ってるかもしれんがそこはご愛嬌!!
こっちのサーバ立ち上げるのもめんどいし、そう間違ってもいないダロウ!!
ポジィティブシンキングってやつだ!!

だた、最後にこれだけは言わせてもらうからナ!! 
言葉遣いが荒っぽくて御無礼お許しください。(ペコリッ
015075とか02/03/05 07:08ID:???
ありがとうございます!こちらこそご無礼をお許しください!
大変勉強になりました。訂正前に比べて、非常に美しい形になりました。
まだ、ちょっと意味不明なところもありますが、調べればすぐわかりそうな位
簡潔ですね!!
0151nobodyさん02/03/05 07:15ID:???
でもさあ、チョット とほほ っぽいコードだと思うけどあの人、意外と
Perl苦手みたいネ!!
かなり無駄な部分が見うけられるからもっとスッキリしたコードに
なるはずです。
015275とか02/03/05 07:17ID:???
実はこの掲示板、秘密のモードが結構自信作なんです。
完成したら是非見に来て欲しいので、よろしければメールください。
さっきのソースの最後のメールアドレス、残ってるかな?
まあいいや。気が向いたらよろしくお願いします。
本当にありがとうございました!

これから仕事に出かけます..(鬱)。
015375とか02/03/05 07:23ID:???
そうなんですか。Perlってなんか文法いっぱいありすぎてややこしいですよね。
とほほさんのばっか参考にさせてもらってたので、他の人のソースはかえってムズカシイっす。
本一冊買おうかな。

では、お出かけします。あー眠い。
0154nobodyさん02/03/05 07:29ID:???
>>152

裏技を非常に凝ったためにメインがおざなりになる罠。
0155nobodyさん02/03/05 09:11ID:???
>>154
他人にみやすく、時間がたった後の自分にみやすく、メンテや機能追加のしやすいコーディングをするっていう方針は間違ってるかなあ?
0156nobodyさん02/03/05 11:47ID:???
以上、壮大な自作自演でした。
0157nobodyさん02/03/05 12:08ID:???
>>156
ワロタ
0158プリクラ02/03/05 21:46ID:zRZgn879
掲示板スクリプトのデコード過程のタグ処理部分で
if ($tagkey) { $value =~ s/<>/<>/g; }
else {
$value =~ s/\&/&/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
}
となってるんですけど、どうしてこれが機能するかわからんです。
正規表現の置換って s/★/☆/g で★が☆に変換されるってことじゃないのです?
だとするとなんで$value =~ s/<>/<>/g;でタグが許可されるのか
わかんないよ。
0159nobodyさん02/03/05 21:51ID:???
>158
else以下だとタグを全て&;lt;などに変換している。
$value =~ s/<>/&;lt;&;gt;/g;では<>がセットになっているときだけしか変換をしない。
つまり、<b>の場合、<>の間にbが入っているからマッチングしない。
0160nobodyさん02/03/05 21:53ID:???
>>158
下2行は無駄。あ、HTMLにしたから&ltが<に化けてるのか。

<を&ltに変えればそれはHTMLタグではなくなる。

<html>

<html&rt -ブラウザでは-> <html>と見える。
016175とか02/03/05 22:06ID:???
自作自演じゃないYAI!>>151さん今日は居ないのKA!
おかげさまでYO!ソースはかなり見栄えよくなって、秘密モードも対応できたんだけどYO!
肝心の文字化けは全く解決しなかったPPE!!!
でYO!携帯携帯とか言ってパケット料金無駄づかいしてテストしてたKEDO!
携帯ページにIEで行って(sjisフォームで)書き込んでも文字BAKEdaZEYO!
フリダシに戻ったっPE!!気づいたらレスくれYO!!!
0162nobodyさん02/03/05 22:21ID:???
>>161 正直そろそろウザイ
0163nobodyさん02/03/05 22:29ID:uMIlDzWP
$encode_pass = crypt $pass_temp,ab;

って何か間違ってる?
0164nobodyさん02/03/05 22:35ID:???
>>163
>ab;

これは何か詳しく聞かせてくれるか?
0165nobodyさん02/03/05 22:58ID:???
きっとこんなのがあとの方にあるに違いない
sub ab { "ab" }
0166nobodyさん02/03/05 23:03ID:???
>>165
後にある場合はvarsかsub;で先行宣言しておかないと。
0167nobodyさん02/03/05 23:07ID:???
そっか宣言しないとエラー出るね。ありがと>>166
0168お腹さん@名無しいっぱい。02/03/05 23:27ID:???
>161
呼んだ?
016975とか02/03/05 23:43ID:???
おおお!昨日はどうもでした!
>>161のとおりなんだけども!ウザいとか言われてへこむから、
なんか端的な解決策あったらお願いしますYO!!!!!!
0170お腹さん@名無しいっぱい。02/03/06 00:11ID:???
>169
そうさネー。もっとスクリプトを整理することサネー。
チョット仕様がわかりかねる部分があるケド、MODEがcomment,light,cellular の
3つがあってcommentモードは print "Location: "; exit; で終わってるのはどう
いう処理?
017175とか02/03/06 00:19ID:???
コメントモードは終わったら表示を更新するだけです。そうか言われてみれば
もっと簡潔な処理できますね。
でも、どうやらもっと別の要因の気がします。
今、フォームデコードする直前あたりからEUCに変換するまでをバイナリで
丹念に調べてます。
0172お腹さん@名無しいっぱい。02/03/06 00:25ID:???
>171
Location: でパラメータを渡さずにこのCGIを呼ぶならどれも実行されないような
気もするケド。。。最終的にLocation: http://xxxxxxx の指定を書くというこTO?
017375とか02/03/06 00:29ID:???
ああ、そうか。いや、実は秘密モードってのが実は通常モードで
引数なければそっちに行くんです。だから、Locationで飛ばさなくていいんですよね。
なんでそんなことしてたんだろう。
0174お腹さん@名無しいっぱい。02/03/06 00:32ID:???
パラメータチェックおよびエラー画面表示等が1つもないケド、必要ないの?
017575とか02/03/06 00:57ID:???
パ、パラメータチェック..うーん、いまいちよくわからんす。

昨日教わったフォームデータを受けてるところ、調べてみたら
同じアという文字をEUCとsjisで送信すると
EUCでは%8E%B1を受け取ってデコード直後から最後まで8Dになってます。
sjisでは%B1を受け取って最後までB1のまま。
&jcode'convert(*value, "euc",$form_code,"z");
とか
&jcode'h2z_sjis(*value);
って文法間違ってないですよね??
0176お腹さん@名無しいっぱい。02/03/06 00:59ID:???
;# URLデコード処理実行

if ($in{'mode'} eq "comment" && $in{'message'} ){
  commentモード処理;
  exit;
}

if ($in{'mode'} eq "light"){
  ligntモード処理;
  exit;
}

if ($in{'mode'} eq "cellular"){
  ligntモード処理;
  exit;
}

※ 現在、大まかに上の処理の流れになっているのでif文がそれぞれ独立していて、
  それぞれのブロックが終了したら exit; で処理が終了してしまう。つまり、
  2つのifブロックを実行することはありえないし、パラメータによってはどの
  ifブロックも実行しないでなにも返さないCGIになってしまい、スクリプトエラー
  になると思う。したがって、大枠としては以下のように書き替えたほうがいいの
  では?
;# URLデコード処理実行

if ($in{'mode'} eq "comment" && $in{'message'} ){
  commentモード処理;
}
elsif ($in{'mode'} eq "light"){
  ligntモード処理;
}
elsif ($in{'mode'} eq "cellular"){
  ligntモード処理;
}
else { デフォルト処理;}
017775とか02/03/06 01:02ID:???
なるほど。全く持ってそのとおりです。
0178お腹さん@名無しいっぱい。02/03/06 01:07ID:???
とりあえず、半角の全角変換はいまの時点でこだわる必要はないと思うし、
別に半角のままでも化けないかもわからないので、まず処理構造をスッキリ
スマートにさせたほうが分かり易くなると思う。
少し読み進めてみると、ファイルロックはしないようにしたみたいダケド、ロックファイル
の後始末(アンロック)などが残っているのでこれは削除したラ?
0179お腹さん@名無しいっぱい。02/03/06 01:10ID:???
あと、携帯には詳しくないが、たしかドコモあたりではヘッダに Content-length: を
付加しないと動かないとかとほほに書いてあったようなきがするケドドウ?
018075とか02/03/06 01:15ID:???
あ、ファイルロックしてます。昨日、ソースお見せするのに
関係なさそうだったのでカットしただけです。
デフォルト処理はif文無しなので、変なパラメータならデフォルトが実行されます。
これ、とほほさんのラウンジの構造そのものなんですが(笑)。
でも全部elsifで繋いだほうが後始末何度も書かなくて済むのでより簡潔ですね。
変更します。
018175とか02/03/06 01:17ID:???
>>179
おっとそれは未確認です。が、僕、学生でも家族でもないのにAUなんです。
追々ドコモでチェックしてみます。
0182お腹さん@名無しいっぱい。02/03/06 01:21ID:???
最初の行あたりの以下の部分って使ってなさそうだケド、もしかしてそのファイルロック
部分かなんかで使ってる?使ってなければ削除したりーナ!

$ENV{'TZ'} = "JST-9"; # Set timezone
@wdays = ( "sun", "mon", "tue", "wed", "thu", "fri", "sat", "sun" ); # Constant variables
018375とか02/03/06 01:27ID:???
あーファイルロックで使ってます。
全部elsifで繋ごうと思ったんですが、commentモードは終了後に掲示板に
戻らないとならないので別個のif文にしてその中でモードを変更するか
locationで飛ばさないとダメですよね??
0184お腹さん@名無しいっぱい。02/03/06 01:52ID:???
commentモード後に必ずLocation: で飛ばす仕様なら「デフォルト処理」に書くほうが
いいと思うケド、どのモードでもない場合(仕様がどうなのかわからないが)やcommonモード
でメッセージが空の場合などの対処も同時に「デフォルト処理」部分でしておく必要はあるネー。

;# URLデコード処理実行
;# ファイルロック実行
if ($in{'mode'} eq "comment" && $in{'message'} ){
  commentモード処理;
}
elsif ($in{'mode'} eq "light"){
  ligntモード処理;
}
elsif ($in{'mode'} eq "cellular"){
  ligntモード処理;
}

;# デフォルト処理;
018575とか02/03/06 02:03ID:???
結局、>>183の前者の方に変更しました。
表示部は必ず実行する、コメントするならしてから表示部を実行する。という感じ。
0186お腹さん@名無しいっぱい。02/03/06 02:14ID:???
だいたい ifブロック構造はまとまってきた?
018775とか02/03/06 02:18ID:???
はい。おかげさまで見やすくなりました。
0188お腹さん@名無しいっぱい。02/03/06 02:21ID:???
次は、URLデコード部分でR!
なぜか知らんがPOSTおよびGET送信を分けて書いてあるのでアル。
018975とか02/03/06 02:23ID:???
はい。だめですか
0190お腹さん@名無しいっぱい。02/03/06 02:26ID:???
分けて書く特別な意味があるならそうすべきだし、特に意味がなければまとめて
書くほうがよりコンパクトで分かりやすいソースにあるってなもんだ!!
019175とか02/03/06 02:37ID:???
どうやったら一つにできるのか考え中です..
0192お腹さん@名無しいっぱい。02/03/06 02:39ID:???
以下の1行でPOSTだろうがGETだろうが 変数 $_ にぶち込んだことになると思うが。

read(STDIN, $_, $ENV{'CONTENT_LENGTH'}) unless $_= $ENV{'QUERY_STRING'};
019375とか02/03/06 02:44ID:???
つまり、$QUERY{'〜'}と$FORM{'〜'}の二つに分けないで、
一つの配列に両方入れるということですか?
0194お腹さん@名無しいっぱい。02/03/06 02:46ID:???
ああ、それってわけてたんだァ。わけないとまずいことでも?
019575とか02/03/06 02:50ID:???
いえ、配列の添え字も重複してないんで、分けなくていいっちゃーいいかも、です。
ところで、192は意味がわかりません。unless、それ以外は..。
0196お腹さん@名無しいっぱい。02/03/06 02:51ID:???
POST送信の場合、$ENV{'QUERY_STRING'} に値がセットされることは
ないと思うが、これって思い違いカナ?
0197お腹さん@名無しいっぱい。02/03/06 02:56ID:???
192 で変数 $_ に「aaa=%a0%2e&bbb=esc」みたいなのが取得できたからつぎは&
で分割したそれぞれを更に=で分割してデコードをぶちかますから大枠は以下の
ようになるハズでアール。(チョット文字コード変換は置いといて)

for ( split('&') ){
nbsp; nbsp;($name, $_)= split('=');
nbsp; nbsp;tr/+/ /; s/%(..)/chr(hex($1))/eg; # URLデコード
nbsp; nbsp;$in{$name}= $_; # 値のセット
}
019875とか02/03/06 02:56ID:???
別ページからのリンクや、BBS内での過去レスへのリンクのURLに?mode=light&page=3
とかって入るんです。
0199お腹さん@名無しいっぱい。02/03/06 02:58ID:???
197はチョットインデントミス

for ( split('&') ){
   ($name, $_)= split('=');
   tr/+/ /; s/%(..)/chr(hex($1))/eg; # URLデコード
   $in{$name}= $_; # 値のセット
}
0200nobodyさん02/03/06 03:00ID:???
>196
<form action="hoge.cgi?foo" method="POST">
とかすると同時に送れたと思う。
0201お腹さん@名無しいっぱい。02/03/06 03:02ID:???
>200
なるホードネー! それじゃー新たな必殺技を考えるからしばしお待ちを...
0202お腹さん@名無しいっぱい。02/03/06 03:07ID:???
これでPOSTおよびGETの値を取得できるかナ!

read(STDIN, $_, $ENV{'CONTENT_LENGTH'});
$_.= "&$ENV{'QUERY_STRING'}";
020375とか02/03/06 03:08ID:???
おお、なるほど!それなら意味がわかりました!
0204お腹さん@名無しいっぱい。02/03/06 03:10ID:???
どうYO!これで1つのハッシュにまとめられそうな予感?
020575とか02/03/06 03:22ID:???
んー今のところうまく行ってないっす..
0206お腹さん@名無しいっぱい。02/03/06 03:27ID:???
わたしは日本語EUC文字コードでしかHTMLフォーム送信をしたことがないから
わからんケド、経験上EUCで送信したHTMLフォームから入力された値はEUCの
URLエンコードで返ってくるのでSJIS送信の場合は必ずSJISのURLエンコード
で返ってくるのかチョットまだ試したことがないから取得パラメータの文字コードの解析
は必要なのかどうか迷うところネー。
020775とか02/03/06 03:36ID:???
んーその前にEUC送信でつまづいてマス..
0208お腹さん@名無しいっぱい。02/03/06 03:39ID:???
URLデコードはできた?
この際、内部処理はすべてEUCで、HTML出力はすべてSJISにしては?
なにかできない理由あったッケ?
020975とか02/03/06 03:47ID:???
できました!!とりあえず、URLデコードとやらを簡潔にすることはできました。
全部SJISですか..。それが一番いいんですかね??文字化けしにくいですよね。
どっかの解説で、日本語使うならEUCだ!という知識を身に付けたので出力までEUCにしてただけです。
0210お腹さん@名無しいっぱい。02/03/06 03:50ID:???
確かにEUCを愛用しているわたしとしてはEUCがいちばん使いやすいし、
経験上文字化けしたことがないし、文字コード変換のプロセスも必要なくなるし、
いいことづくめだとは思っています。
021175とか02/03/06 03:58ID:???
そうですかー。僕の掲示板やたらと重いんで、sjis変換するの躊躇するんですが、
文字化けよりはいいかな。
ていうかEUCって文字化けしないんですか?
0212お腹さん@名無しいっぱい。02/03/06 04:02ID:???
EUC送信部分ってlightモードDA・YO・NE?
021375とか02/03/06 04:03ID:???
おっと、また問題発生!
さっきモードうんぬんを変更したせいで、
書き込み後のURLが?mode=commentのままになっている..
やっぱりLocationで飛ばしたほうがいいのかなあ。
021475とか02/03/06 04:04ID:???
lightモードとHeavyモードです(笑)
0215nobodyさん02/03/06 04:06ID:???
すみません。
foreach $line(@hoge_lines){
@超hoge=split(/<>/,$line);
&普通にhoge;
}
こういうのがありまして、
&普通にhogeというサブルーチンは
sub 普通にhoge{
名前:超hoge[0]
題名:超hoge[1]
}
となっているとします。
このルーチン内に別のログファイルの内容を読み込んでうまく組み込むにはどうすればよいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています