- ベストアンサー
配列変数の使い方とメール送信方法について
- 初歩的な質問で申し訳ありませんが、3つの配列変数について説明します。$aは会員コード、$bは文字列、$cは会員のメールアドレスです。
- $a、$b、$cのそれぞれの要素がどのような情報を持っているか詳しく説明します。
- 会員コード毎に文字列を結合して対象のメールアドレスにメールを送信する方法についてアドバイスします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すみません、1つ書き忘れてました。 No.1 で書いたコードは、インデントを見やすくするために全角スペースを使っています。 ですが、Perlのスクリプトとしてこれは許されず、半角スペースなりタブなりに置き換える必要があります。 全角スペース2個→タブ1個などに置き換えてみてください。
その他の回答 (1)
- leaz024
- ベストアンサー率75% (398/526)
ちょっと確認。 ・要素を3つ持つ構造のデータが8レコードある。 ・要素ごとに別の配列で管理している ・同じレコードのデータは同じIndexに格納されている ということでいいでしょうか? (配列は $a、$b、$c ではなく、@a、@b、@c ですよね?) また、1つの会員コードに対するメールアドレスは1つと決まっているのでしょうか? 以下、そのような仮定で。 my %code2data; for (my $i = 0; $i <= $#a; $i++) { $code2data{$a[$i]} ||= { mailaddr=>$c[$i] }; $code2data{$a[$i]}->{str} .= $b[$i]; # 文字列の連結部分 } foreach my $code (keys %code2data) { # メールを送る # メールアドレスは $code2data{$code}->{mailaddr} # 連結文字列は $code2data{$code}->{str} # です。 } これで、以下のようなメールを送ることができます。 ・会員コード 01(メールアドレス1)の人へ 'あいう' という内容 ・会員コード 02(メールアドレス2)の人へ 'ア' という内容 ・会員コード 03(メールアドレス3)の人へ '阿伊宇江' という内容
補足
早速のご返答ありがとうございます。 ちょっと試してみたのですが、 Unrecognized character \xA1 at ($code2data{$a[$i]} ||= { mailaddr=>$c[$i] }; の行). のようなエラーが出てしまいました。 どのような原因が考えられますでしょうか? よろしければ重ねてお知恵をお借りできませんで しょうか。 よろしくお願い致します。
お礼
ありがとうございました! 完璧な結果が得られました。 重ねて御礼申し上げます。