プロが教えるわが家の防犯対策術!

以下のスクリプトについて質問があります。


$_ = $mail;
m/(^[a-zA-Z0-9\.\_\-]+\@[a-zA-Z0-9\.\_\-]+)/g;
$mail = $1;
if($in{mail} ne $mail){ &PrintError('メールアドレスは、半角文字で書いてください。'); }


このスクリプトなのですが、$mailの値を$_に代入し、$_の値をm/・・・ の部分で半角チェックしているのは分かるのですが、半角チェックされた後どうなっているのかがわかりません。また、$1 とはどうゆう意味なのでしょうか??ifより後の部分は分かっています。

また、

open(IN, "<database.dat");
while (<IN>) {
print;
}
close(IN);

の全体的な説明をお願いしたいです。ファイルハンドルという概念とopen,close両関数は分かっています。


最後に

print qq(Content-type: text/html; charset=Shift_JIS\n\n);

とあった場合の qq の意味が分かりません。

分かる方いらっしゃいましたらご教授くださると幸いです。よろしくお願いします。

A 回答 (3件)

追:


すいません、一言、忘れてました。UNIX/Linux 以外では、動作確認いっさいしておりません。
    • good
    • 0
この回答へのお礼

遅くなって申し訳ないです、みなさん回答ありがとうございました!サブルーチンだったのですね。。気づきませんでした。

お礼日時:2006/02/21 00:47

PrintError



そのスクリプトのどこかに定義されているサブルーチンですね。(もしくは require か use されているライブラリ、モジュール内に定義されているサブルーチン)

名前からすると html でエラーメッセージを出力する為の物かと。
    • good
    • 0

>$1 とはどうゆう意味なのでしょうか?


その前のマッチングで( )でマッチした部分

>全体的な説明
"database.dat"
を一行毎読み出し、標準出力に表示します。
print;
は、
print $_;
と同じで、この場合の$_ は、<IN> で読み込まれた一行

>qq
qq( 中身 ) は、関数呼出(形?)による
"中身" とほぼ同じ
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
一つ質問を追加してもよろしいでしょうか??
PrintErrorとはどのような時に使う関数なのでしょうか?分かる方いらっしゃいましたらよろしくお願いします。

お礼日時:2006/02/18 19:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!