![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?5a7ff87)
たびたび質問すいません。
エラーチェックについて質問です。
sub err_check{
$data="data.txt";
open(LOG,"$data");
@readerlist = <LOG>;
close(LOG);
foreach $list (@readerlist) {
$newlist = $list;
$newlist =~ s/\n//g;
$newlist =~ s/\r//g;
if($newlist eq $mail)
{&err("$mail は既に登録済みです");}
}
}
という記述は動作しました。この逆、$mailは登録されていませんというエラー処理を吐き出すには、($newlist eq $mail)を($newlist ne $mail)とやればできるのかと思いましたがうまくいきませんでした。
data.txtの中身はメールアドレスですが、アドレスごとに改行コード↑が入ります。data.txtのファイルの中身を検索して、$mailがなかったら登録してません。と
はきだす処理の記述はどのようにしたらいいのでしょうか?
No.1ベストアンサー
- 回答日時:
リストに特定のデータが「ない」と言えるためには、リストの要素をすべて確認し終えてからでなくてはならないので、例えば、プログラムの一部を以下のように書きかえる必要があると思います
# $flag: 見つかったか確認のためのフラグ。
# 0 ... 「まだみつかっていない」
# 1 (2, 3, ...) ... 「すでに見つかった」
$flag=0;
foreach $list (@readerlist) {
$newlist = $list;
$newlist =~ s/\n//g;
$newlist =~ s/\r//g;
if($newlist eq $mail)
{$flag++} # 見つかった場合、あるいは"$flag++; last;"
}
# 一度も以上の「見つかった場合」が実行されなかったとき:
if(! $flag) {
&err("$mail は登録されていません");
}
No.2
- 回答日時:
foreach $list (@readerlist) {
$newlist = $list;
$newlist =~ s/\n//g;
$newlist =~ s/\r//g;
if($newlist eq $mail)
{&err("$mail は既に登録済みです");}
}
を
foreach $list (@readerlist) {
$newlist = $list;
$newlist =~ s/\n//g;
$newlist =~ s/\r//g;
return if($newlist eq $mail);
}
&err("$mail は登録されていません");
ぐらいでいいんじゃないかな
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- Visual Basic(VBA) Excel・ユーザーフォームの情報を受け渡したい 4 2022/06/08 10:11
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Gmail パソコンからLine へ加入手続きをとりたいのですが、・・・・・・・ 5 2022/07/24 14:19
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラーチェック、ファイルに特...
-
cgiのログの書き方
-
perlでcsvファイルを読む(ダブ...
-
Perlで特定行から特定行までを...
-
csvデータの開始行と最終行を全...
-
python renameについて
-
VBAで巨大なファイルの途中から...
-
batファイルでrenameができませ...
-
Perlでのファイル出力における...
-
csvファイルの横方向への改行に...
-
VBAでCSVファイルの特定行を書...
-
Pythonでegrep機能をつかいたい
-
awkスクリプトでダブルクォーテ...
-
csv出力
-
VBAでCSVファイルを途中行まで...
-
VB6.0でDB接続する際に切断時の...
-
ディレクトリ名を取得したい
-
FindFirstFileとFindNextFileで...
-
ファイルの一部を別のファイル...
-
ListBoxのデータを高速でファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定行から特定行までを...
-
Perlの初心者です。2重ループ...
-
ディレクトリ内のtxtファイル中...
-
Perlで空白行を削除
-
perlでcsvファイルを読む(ダブ...
-
Perlを利用してテキストフ...
-
ファイルの3行目までを出力したい
-
foreachの制御
-
Java CSVファイルをカンマごと...
-
Argument "\\\\n" isn't numeri...
-
エラーチェック、ファイルに特...
-
CSVデータの編集の際の重複チェ...
-
FTP接続時失敗時、接続先名をcs...
-
CSVファイルのデータの行数を取...
-
cgiのログの書き方
-
MATLAB std::exceptionエラー
-
VBAでCSVファイルを途中行まで...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
バッチファイルの作り方(CSV→...
おすすめ情報