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

Perl 初心者コーナー Part24

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆fBgbHI04bQ 03/06/07 22:30ID:GbQKLcPE
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

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

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。


CGIだけど、なんか質問ある? Part 10
http://pc2.2ch.net/test/read.cgi/php/1048686475/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
CGIに依存しないPerlの話題一般/Part2
http://pc2.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0398nobodyさん03/06/16 00:16ID:???
>>397
LWP
0399nobodyさん03/06/16 00:35ID:???
mkdir関数でディレクトリをパーミッション777で作成したのですが
755で作成されてしまいました。
ラクダ本を読んでみたところ
>数値MODEで指定したパーミッション(を現在のumask値で修飾したもの)を持つ
とあるのですが、umaskで修飾とはどういうことなのでしょうか?
原因の分かるかたがいらっしゃいmしたらよろしくお願い致します。

以下の様にやっています
mkdir( './dir', 0777 ) or die( "ディレクトリを作成できません\n" );
0400nobodyさん03/06/16 00:56ID:???
>> 399
print umask; # 現在値
my $umask = umask 0; # umask を 0 にし、前の値を退避
mkdir ...
umask $umask; # 元に戻す

see also: http://www.google.co.jp/search?q=umask&hl=ja&lr=lang_ja
0401nobodyさん03/06/16 00:57ID:???
>>397
普通にGETしても割と簡単だし、面白いからやってみるべし
0402nobodyさん03/06/16 01:13ID:???
>>395
>>371
0403nobodyさん03/06/16 01:49ID:DMh466I+
掲示板を作っているのですが、
$content =~ s/([a-zA-Z0-9\.\-\_]+@[a-zA-Z0-9\.\-\_]+)/<a href=\"mailto:$1\">$1<\/a>/g;
↑この正規表現で、$content内に”(sage@hoge.com)”(←カッコは全角)
という文字が含まれていた場合、最初のカッコ部分で文字化けしてしまいます
・・・というか、IEでは<a>タグの"<"部分が文字化けしてそれ以降の
</a>部分までのHTMLが表示されてしまい、NN6ではsage@hoge.comの前に
余計な文字がくっついたものにリンクが貼られている状態になってしまいます
文字化けせずに、”sage@hoge.com”だけがマッチするようにするには
どうしたら良いでしょうか?
0404nobodyさん03/06/16 02:30ID:???
>>403
ttp://www.din.or.jp/~ohzaki/perl.htm
0405nobodyさん03/06/16 02:35ID:cMLQJvQF
自分なりに検索をしたのですが、解決策は見つかりませんでした。
探し方が悪いのかもしれませんが…

ファイルオープン時に、対象ファイルがないと『Internal Server Error』が表示されるのですが、
このエラーの変わりにメッセージを表示、もしくはHTMLで作成したエラーページにジャンプ
させたいと思っています。

そこで、まずはメッセージの表示から挑戦したのですが、上手く行きません。

$fname1 = "ファイルのパス/ファイル名";

open(FILE, "$fname1") or die "File Open Error.\n";
open(FILE, "$fname1") || die "File Open Error.\n";
open(FILE, "$fname1") or &Error "File Open Error.\n";
open(FILE, "$fname1") || &Error "File Open Error.\n";

以上のどの方法でも『Internal Server Error』が表示されています。

ファイルのパス/ファイル名は、HTMLフォームに入力された内容を取得しているのですが、
存在するファイル名を指定すれば、正常にファイルの入力は行われます。

以上、説明の不備等あるかもしれないのですが、よろしくお願いします。
0406nobodyさん03/06/16 03:15ID:???
>>405
CGIでdieするのはあんま意味ないです。
sub Errorのほうではちゃんとヘッダとか出力してますか?
0407nobodyさん03/06/16 03:22ID:X/Zl1g96
Apacheで print 'a' 等の後、エラーが出た場合バッファをクリアしてエラーを出力したいのですが、
バッファをクリアするにはどうすればいいのでしょうか?
0408nobodyさん03/06/16 03:29ID:???
>>406
レス有難うございます。

> sub Errorのほうではちゃんとヘッダとか出力してますか?

&Errorって、dieの代わりに使う…ってモノじゃ無いんですね…
どうも的違いの事をやってしまっているようですね。
もう少し勉強してから質問するようにします。

なんにせよ、解決に向かって一歩進んだような気がします。(気のせい?)
本当に有難うございました!
040940503/06/16 03:40ID:???
解決しました!
下記のようにすることで、無事にエラーページに飛ぶ事が出来ました。

open(FILE, "$fname1") or &Error;

sub Error{
print "Location:エラーページのURL\n\n";
}

>>406さんにヒントをもらえたおかげです。有難うございました!
また、板汚し失礼いたしました。
0410nobodyさん03/06/16 03:45ID:???
>>403
これでどうだ?
文字化けしそうな時は、スペース1個入れてごまかしてみた。

$content =~ s|(?<=[\x81-\x9f\xe0-\xef][\x40-\x7f])([\w\.\-]+@[\w\.\-]+)| $1|g;
$content =~ s|([\w\.\-]+@[\w\.\-]+)|<a href="mailto:$1">$1</a>|g;
0411nobodyさん03/06/16 04:06ID:???
>>410
ごめん。間違い。
↓こうしないと失敗するかも。

$content =~ s|((?:[\x81-\x9f\xe0-\xef][\x40-\xfc])*(?:[\x81-\x9f\xe0-\xef][\x40-\x7f]))([\w\.\-]+@[\w\.\-]+)|$1 $2|g;
$content =~ s|([\w\.\-]+@[\w\.\-]+)|<a href="mailto:$1">$1</a>|g;
0412_03/06/16 04:23ID:???
http://homepage.mac.com/hiroyuki44/
0413nobodyさん03/06/16 08:18ID:???
perlができることを自慢するために何か証明になる資格試験とかありませんか。
Cとかjavaとか、Linux、word、一太郎などまであるわけですが、perlはなぜか
聞かない。


0414nobodyさん03/06/16 08:44ID:???
とても初歩的な質問で申し訳ないのですが、

2003年6月16日(月)8:44

という文字列から
「6月16日(月)」と「8:44」
を取り出すにはどうしたらよいか教えていただけませんか?
よろしくお願いします。
0415nobodyさん03/06/16 09:06ID:???
>>414
$hiduke='2003年6月16日(月)8:44';
@hiduke=$hiduke=~m/(\d+月\d+日\(.+?\))(\d+:\d+)/;
print "@hiduke";

0416nobodyさん03/06/16 10:42ID:QXmqryyp
>>413
http://www.dtek.chalmers.se/groups/icfpcontest/
これで優勝すると「無制限に自慢する権利」を得ることが出来ます。

http://slashdot.jp/developers/03/06/13/1610225.shtml?topic=58
0417nobodyさん03/06/16 10:52ID:01UxcTvV
質問です
エディタで見るとちゃんと改行されて見れますが
log.dat内でも改行される様に
するのはどすればいいのでしょうか
すんません。初歩的質問で
よきお知恵を

例えばこんなのです

$log = $ENV{'HTTP_REFERER'};

open(LOG, ">>./log.dat");
print LOG "$log\n";
close(LOG);
0418nobodyさん03/06/16 11:04ID:???
>>417
意味不明。
log.dat内でも見られるってどういう意味?
改行っつったら、文字コードの話か、<br>の話か。

ともかく落ち着いてわかりやすく説明してくれ。
0419nobodyさん03/06/16 11:38ID:01UxcTvV
>>418
すんません。ちょっと落ち着いてみます。

えーと
FTPとかでlog.datを落としてメモ帳で見る、もしくは
その場でメモ帳とかで開くとlog.datがバイナリなので
改行されず見難いです。

まあ普通にエディタ使えばいいじゃんと
言われればそうなんだけど
出来ないのかなぁ と

うぐ、なんか説明へただぽ
0420nobodyさん03/06/16 11:41ID:???
>419
激しくスレ違いだな。
改行コードの問題だ。
素直にエディタ使え。
0421nobodyさん03/06/16 11:43ID:???
>>419
うむ、たしかにちとスレ違い。
まあ、どうしてもメモ帳が使いたいなら、SJISにして書き込むなり
なんなりしたまい。
果てしなく意味のない行為だとは思うが…。
0422nobodyさん03/06/16 11:51ID:???
>>419
バイナリ?だって、そこが勘違いの元じゃないかな。
HTTP_REFERRERは、飛んでくる前のページだから、普通のテキスト
ファイルのはず。改行コードがLFだけだとしても、windows PCだと
行がつながらないはず。Macだと?逆に、CRだけだと、windows PC
で見ると行がつながる。とっちか確かめて、
s/\r/\r\n/とか、s/\n/\r\n/とかすりゃいいんじゃ?

0423nobodyさん03/06/16 11:53ID:???
awkのnextfileは、Perlではどうすればいいですか。
たくさんあるファイルの1行目だけ表示したいんですが、
perl -ne 'print if $. == 1;'
だと1つのファイルだけしか処理できないんで困ってます。
よろしくおながいします。
042441903/06/16 11:56ID:???
みんなすまんぽ

いろいろ調べても解からなかったので
かなーりパニックになってたぽ

>>422
なんか道が開けたぽ
0425nobodyさん03/06/16 11:57ID:AbGOHEQT
>>401
すみません、普通にGETとはどういうことでしょうか…?
それが分からなくて困ってます。
0426nobodyさん03/06/16 12:02ID:???
>>423
1行読込をたくさんあるファイルに対して繰り返し行う
0427nobodyさん03/06/16 12:04ID:???
>>426
どいうこと?ワイルドカード使ってやる方法キボンヌ。
awkにできてPerlにできないはずないだろうから。
0428nobodyさん03/06/16 12:07ID:???
>>425
http://www.google.com/search?num=100&hl=ja&inlang=ja&ie=Shift_JIS&safe=off&c2coff=1&q=perl+http+get&lr=lang_ja
0429nobodyさん03/06/16 12:11ID:???
>>427
できません
0430nobodyさん03/06/16 12:18ID:8IGausxn
>>428
ありがとうございます
0431nobodyさん03/06/16 12:19ID:???
>>429
厨め。できたよ。教えてやらない。
0432nobodyさん03/06/16 12:59ID:???
>>425
>>398は無視か?この糞野郎。二度と来んなボケ。氏ね。
0433nobodyさん03/06/16 13:34ID:???
この場合は
$a = 0;
if (!$a)
真でいいんですよね。
では↓こういう式の時は
if (!($a==0 && $b))

変数が
$a = 1 $b = 1 の時は 偽
$a = 1 $b = 0 の時は 真
$a = 0 $b = 1 の時は 偽
$a = 0 $b = 0 の時は 偽

でいいのかなそれとも

$a = 1 $b = 1 の時は 真
$a = 1 $b = 0 の時は 真
$a = 0 $b = 1 の時は 偽
$a = 0 $b = 0 の時は 真

こっちでしょうか? よろしくお願いします。
0434nobodyさん03/06/16 13:50ID:???
>>433
そこまでわかってるなら自分で試せよ…。
0435nobodyさん03/06/16 13:56ID:???
>>419
ASCIIモードで転送しろ
と誰も言わないのはなぜだ・・・
0436nobodyさん03/06/16 13:59ID:???
>>433
なんだ、そのif文の条件は。
ただの嫌がらせだろ。

$aが真であり、なおかつ、$bが偽の場合という条件。
0437nobodyさん03/06/16 14:08ID:???
>>434
自分で書いたものではなくて試そうにも中に実際中に何が
はいっているのかも解らず1つ1つ解決していこうとは思っているのですが、
検索したり、リファレンスみたりしてるのですが、こういった例が見当たら
なかったので質問しました。よろしくお願いします。
0438nobodyさん03/06/16 14:13ID:???
>>436
ありがとう。助かりました。
0439nobodyさん03/06/16 14:32ID:???
>437
ローカルにテスト環境を作って試す。
これ常識。
マジで。
0440nobodyさん03/06/16 14:40ID:???
>>439
一応ためしているのですが
解ったことは
$a = 0 $b = 0 は実行されているみたいです。
でもそれだとアレ?
0441nobodyさん03/06/16 14:41ID:???
>>437
まあマジレスすると

$a=1;
$b=1;
if (!($a==0 && $b)){
print "ok\n";
}

こんな感じにして、4回変数を書き換えればテストは出来る。
記述が正しいかの動作確認だけなら、一々スクリプト全体を
見直す必要は無い。
0442nobodyさん03/06/16 15:37ID:???
>>441
ありがとうございます!!
結果がわかりました。
でも、頭で理解しようとすると自分にはとても難しい。。。
0443nobodyさん03/06/16 17:25ID:0o9Ehb4h
メールフォームを作ってます。
$addr = $ENV{'REMOTE_ADDR'};
でIPアドレスを取得するように設定したのですが
友人に送ってもらったメールのIPアドレスと自分で送ってみたものが
同じIPアドレスになってました。
なんでー???
0444nobodyさん03/06/16 17:32ID:???
>>443
念のため確認だが、実は二人とも同じケーブルで同じ収容局とか、
そういった落ちは無いよな?
0445nobodyさん03/06/16 17:34ID:???
>>443
> なんでー???
あなたの描いたスクリプトがバカだから。
と答えて欲しいの?
0446nobodyさん03/06/16 17:34ID:???
>>443
REMOTE_ADDRが同じだったから。
0447nobodyさん03/06/16 17:45ID:???
>>425
$port = getservbyname('http', 'tcp');
$iaddr = inet_aton($host);
$sock_addr = pack_sockaddr_in($port, $iaddr);
socket(SOCKET, PF_INET, SOCK_STREAM, 0);
connect(SOCKET, $sock_addr);
select(SOCKET); $|=1; select(STDOUT);
print SOCKET "GET /$path HTTP/1.0\r\n";
print SOCKET "\r\n";
@get = <SOCKET>;

こんな感じで
044844303/06/16 18:05ID:0o9Ehb4h
REMOTE_ADDRは同じではないと思います。
住んでる所は友人は関東で私は中部だしプロバイダーも違うし。
$addr = $ENV{'REMOTE_ADDR'}; の箇所以外に
IP取得に干渉するものがあるんでしょうか?
もちょい試行錯誤してみます。
0449nobodyさん03/06/16 18:43ID:???
1秒ごとに@dataの文字を書き出したいのですが、
↓のようにすると、sleep(1)×配列の個数ぶん待った後
一気に出力されます。。
1文字づつ1秒間隔で出力したいのですが、、どこがまちがってますか?


@data = ("あ","い","う","え","お","か","き","く","け","こ");

print "Content-Type: text/html\n\n";
print "<html>\n";
print "<title>self</title>\n";
print "<body>\n";

for($i=0; $i<=$#data; $i++){
print "$data[$i]<br>\n";
sleep(1);
}
0450nobodyさん03/06/16 19:35ID:???
>>449
CGIスクリプトとして動かしてる?
0451nobodyさん03/06/16 19:42ID:???
>>450
どういうことでしょうか?
ローカルで動かしているんですが、
AddHanderもして、
拡張子もcgiで、ちゃんとスクリプトのはずですが。。。
0452nobodyさん03/06/16 19:47ID:???
>>448
REMOTE_ADDRを記録して、それが同じだったということはREMOTE_ADDRが同じだったということではないですか?
>>451
CGIは全部実行した後出力するんだよ。たしか。
0453nobodyさん03/06/16 19:51ID:???
え、じゃあスリープの意味って・・・・
0454nobodyさん03/06/16 19:51ID:???
>>453
PerlはCGIためだけのものではありません。
0455nobodyさん03/06/16 19:56ID:???
>>449
俺にもよく分からんけど、この辺とか
ttp://www.google.co.jp/search?q=cache:yNlP1fhIQ48J:tohoho.wakusei.ne.jp/lng/199802/98020500.htm+%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%83%AA%E3%83%B3%E3%82%B0+cgi&hl=ja&lr=lang_ja&ie=UTF-8
0456nobodyさん03/06/16 20:40ID:???
MobileType(スペルあってるかな?モバイルタイプ)っていう
スクリプトで、mt-load.cgiを実行したときに1行ずつ表示されてたんだけどなぁ。
nphでもなさそうだし・・・
0457nobodyさん03/06/16 21:32ID:???
>>456
mt-load.cgi の20行目で、>>455の "$|=1" してるから
0458nobodyさん03/06/16 21:34ID:???
>>457
ほんとだ、localついてて見落としてた。。。
でも、sleepもないし、nph-*.cgiでもないのに・・・
どういう仕組みなんでしょうか?
0459nobodyさん03/06/16 21:38ID:???
うぅ、何回も1行ずつ流れてるのみてる・・
イイナァ
0460nobodyさん03/06/16 22:00ID:???
>>443
IPをHOSTに変換してみたら何かわかるかも
0461nobodyさん03/06/16 22:06ID:???
どれもこれもネタか?
あああ鬱。
046245803/06/16 22:08ID:???
ほんとお願いしますよ〜〜
どうやったらできるんでしょ。。
ネタとか言わないで・・・
0463nobodyさん03/06/16 22:26ID:???
REMOTE_ADDRが常に同じ値になるように設定してあるサーバがあるよ。
0464nobodyさん03/06/16 23:52ID:???
REMOTE_ADDRを表示するだけのスクリプト書いて
いろんな串さしてみて試せば?
0465nobodyさん03/06/16 23:55ID:???
>>449

$| = 1;
@data = ("あ","い","う","え","お","か","き","く","け","こ");
print "Content-Type: text/plain\n\n";
for($i=0; $i<=$#data; $i++){
print "$data[$i]<br>\n";
sleep(1);
}
exit;

これでやってみれ。
046645803/06/16 23:57ID:???
>>465
ん〜、やっぱり始めに全部sleepして一気に吐き出しますねぇ。。。
0467nobodyさん03/06/17 00:02ID:???
いっそのこと、1行ずつ表示する部分はJavaScriptに任せちゃうとか。
0468nobodyさん03/06/17 00:09ID:???
>>466
そりゃ環境がおかしいんだわ
046945803/06/17 00:12ID:???
>>468
マジっすか?
0470nobodyさん03/06/17 00:14ID:???
>>466
htmlについてもよく考えてみれ。
ブラウザがソースを受け取り、解釈してからレイアウトを決めて
どの時点でどういう順番で表示するか保証はないんだぞ?
047145803/06/17 00:14ID:???
NNならちゃんと1文字ずつ出ました。
IEだと無理です。
047245803/06/17 00:17ID:???
うーんと、、、
1行ずつ表示する文字をdatなりに保存して読み出したいので、cgiがいいんですけどね〜。。
javaはソース見え見えなのがいやだなぁ。。
0473nobodyさん03/06/17 00:18ID:???
>>465
WinのIE6で1秒ずつ表示になるね
047445803/06/17 00:20ID:???
>>473
え???
俺、ローカル(Win)でやると、
あ<br>
い<br>
ってのが一気に表示されて、
レンタルサーバ(linux)だと、
ファイルのダウンロードになった
0475nobodyさん03/06/17 00:31ID:???
>>472
とりあえずJavaとJavaScriptは別モンだゴルァ!とお約束の突っ込み。

CGIでは、表示するぶんだけの文字列とそれを表示するためのJavaScriptを出力して
実際の表示はJavaScriptに委ねる、って意味なんだけど。
まあ、可能かどうかは分からんが。
0476nobodyさん03/06/17 00:39ID:fNA5EU9/
初心者の質問で申し訳無いのですが
foreach文の中で次のループに移るコマンド(for文のcontinueみたいなやつ)
はあるのでしょうか?
御教授くださいませ。
0477nobodyさん03/06/17 00:40ID:???
sage忘れスンマソン(;´Д`)
0478nobodyさん03/06/17 00:43ID:???
>>476
next

あとsageてもスレが下がるわけじゃないんで。
0479nobodyさん03/06/17 00:48ID:???
>>476
goto

あとsageてもスレが下がるわけじゃないんで。

0480nobodyさん03/06/17 00:50ID:???
>>478,>>479
即レスありがd。早速試してみます。
0481nobodyさん03/06/17 01:02ID:???
しかし何で一文字づつ表示させたいの?
まさか、CGIで よ う こ そ とか、下らない事やりたい訳じゃないよね。
JavascriptやFlashが無難だと思うけど・・・。
0482nobodyさん03/06/17 01:06ID:???
だよな
見るほうはさっさと表示されたほうがありがたいだろうに
自分のセンスでおもしろいカッコイイと思ってもみんながそうとは
0483nobodyさん03/06/17 01:08ID:3tOJ9ih6
皆さん目が悪いようなのでもう一度質問します。

SSIでCGIを呼び出そうとして失敗したときに
[an error occurred while processing this directive]
というエラー文が.sthmlファイルの中に出てくるんですが、
この文章を自由な文面に変更したり出来るんでしょうか?
出来ればリンクタグに変えたいんですが・・・
0484nobodyさん03/06/17 01:10ID:???
えっと、まずスレタイと>>1をどうぞ。
0485nobodyさん03/06/17 01:12ID:???
>>483
<!--#config errmsg="?????" -->
0486nobodyさん03/06/17 01:13ID:QhMbf/ik
globについて質問ですが、

my $file = '/dir/*';
my @list = glob("$file");

このようなイメージでglob内ワイルドカードを
変数化することは可能でしょうか。
0487nobodyさん03/06/17 01:22ID:???
>>486
>>1を読んで出直せ。答える必要なし。
0488nobodyさん03/06/17 01:22ID:???
>>486
そのやり方じゃダメなの?

それより、何でスカラー変数をいちいち "" で囲むんだろう。
たまにリストでそれやってハマってる人がいるけど、なんかそういう参考書があるのだろうか。
0489nobodyさん03/06/17 01:29ID:???
>>483
頭が悪いようなのではっきり言っておきます。
Perlに関係ないだろうが。
049048603/06/17 02:09ID:???
いや、ごめんなさい。

$file = '/dir/*';
my @list = <$file>;

はいかないのに

$file = 'dir/*';
my @list = </$file>;

はいったので、すごい疑問に感じ、ここでglobについて
質問させていただきました。
雰囲気を壊してしまいすみませんでした。
0491nobodyさん03/06/17 06:23ID:???
>>490
<$file>と書いた場合は、$fileがファイルハンドルと解釈されてるだけだよ。
<>演算子は、中身によって行入力になったりグロブ演算子になったりと、紛らわしい。
だからPerl5以降では、glob()を使ったほうがいい。
0492nobodyさん03/06/17 07:06ID:???
掲示板の記事削除処理において
ファイルを開き、記録された記事番号とパスワードを取りだし
入力されたパスワードと選択された記事をそれぞれ比較して
該当した記事以外を記録しなおすという処理を作ったんですが
いろいろいじってるうちになんだか変な動作するようになりました。
入力したパスワードが正しいとなぜが一番違いの記事のパスワードと比較します。
入力されたパスワードが間違ってると、その記事のパスワードと比較します。
何が悪いんでしょう?
0493nobodyさん03/06/17 07:07ID:???
foreach $line (@lines) {
$del = 0;
local($no,$key) = split(/,/,$line);
if( ( $FORM{'delete'} eq $key ) ){
if ( $no eq $FORM{'target'} ) {
$del = 1;
}
if ( $del == 0 ) {
push (@line2,$line);
}
}
else {
&error("キーが違います。");
}
}
049449203/06/17 07:08ID:???
493も俺です(´∀`;)
0495nobodyさん03/06/17 09:48ID:???
オブジェクト指向で書いているのですが、ファイルのラッパーのような
ものを作っています。その際、ファイルハンドルなどはインスタンスごとに
違うものにしたいのですが、どのようにすればよいのでしょうか?

滅茶苦茶な例なのですがC&Perlで言うと下のようなイメージでやりたいと思っています
my $seif = shift;
$self->{handle} = fopen( …
0496nobodyさん03/06/17 10:39ID:???
>>495
IO::File
0497>>49203/06/17 13:30ID:XeNVFdef
foreach $line (@lines)
{
  $del = 0;
  local($no,$key) = split(/,/,$line);
  if( ( $FORM{'delete'} eq $key ) ){
   if ( $no eq $FORM{'target'} ) {
    $del = 1;
   }
   if ( $del == 0 ) {
    push (@line2,$line);
   }
  }
  else {
   &error("キーが違います。");
  }
}

字下げくらいしろ。
見易さが違うだろうが。

っといいつつ、俺はPerlに関しては初心者だからまだ分からんがな。
今アクセスログやってんねや。んじゃ
■ このスレッドは過去ログ倉庫に格納されています