in reply to External Array of Emails

One of the simplest things to do is to simply use a configuration file that contains all the e-mails that you wish to use, read that, build an array from it, and use that in your @mail_to array.

use strict; use warnings; use IO::File; my @email_to; my $config_file_name = "emails.txt"; my $config_file = new IO::File; $config_file->open("< $config_file_name") or die("Could not open confi +guration file $config_file_name\n"); while (<$config_file>) { chomp; push @mail_to, $_; }

It looks like you have a conditional for $pro_box, which has a differing list. In that case, simply use a separate file for the pro list and you're all done

There are modules to handle configuration files (Config::General springs forth after q quick search), but for this purpose is like using a bazooka to kill a fly.

Replies are listed 'Best First'.
Re^2: External Array of Emails
by Anonymous Monk on Sep 21, 2007 at 14:20 UTC
    Thanks, but see that's where the problem is, the logic, how to make the results of the array here:
    push @mail_to, $_;
    be like this line:
    my @mail_to = ($pro_box) ? ( 'person1@mycompany.com', 'person2@mycompany.com', 'person3@mycompany.com', 'person4@mycompany.com') : ( 'person +2@mycompany.com', 'person +3@mycompany.com', 'person +4@mycompany.com');

      Then use the same variable to control which e-mail configuration file you're using

      my $config_file_name; if ($pro_box) { $config_file_name = 'pro_box_email_list.txt'; } else { $config_file_name = 'not_pro_box_email_list.txt'; }

      The rest of the code I supplied follows after this

        insight

        Perhaps you are wondering about the trinary operator that is being used? Here is the same thing as my previous post, but using the ? operator

        $config_file_name = $pro_box ? 'pro_box_email_list.txt' : 'not_pro_box +_email_list.txt';