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

サーバーに接続できない場合、FTPアカウントやパスワード異常、ディレクトリ変更時、登録されていないディレクトリ移行をした場合や、ディレクトリに該当データがない場合、それぞれ何もせず処理終了するというルーチンを作りたいのですが、サーバー異常のときは下記のif文を挿入していますが、他の各処理でどのような判断をいれるとよいのかわからないのですが。

現在は下記のように記述しています。

$FTP = Net::FTP -> new($FTPserver) or warn('初回Net::FTP失敗');# FTP接続
if ($FTP) {
$FTP -> login($FTPuser, $FTPpass) or warn('初回login失敗');# ログイン
$FTP -> cwd($FTPdir) or warn('cwd失敗');# ディレクトリの変更

opendir(DIR, $FTPdir);
@FTPlist = grep (/^$head$year$mon$mday.*\.csv$/, readdir(DIR));
closedir(DIR);

A 回答 (1件)

warnをdieにすれば、エラーとして終了します。

(CGIでCGI::Carp qw/ fatalsToBrowser /;していない場合はServer Errorが表示されます。)

自分でエラー処理を書いても良いです。

sub error{
my $message = shift;
print "ERROR: $message";
exit;
}

$FTP->login($FTPuser,$FTPpass) or error('ログイン失敗);

ちなみに、warnは標準エラー出力に書き出す(終了はしない)、dieはエラー出力に書き出して終了、exitは(引数を評価して)終了です。
    • good
    • 0
この回答へのお礼

ありがとうございます。よくわかりました。

お礼日時:2005/01/11 15:12

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