How about something like this?  It doesn't make it like GetOpt::Long,
but it does handle what you want.  Or you could just require that people
pass an array to your subroutine and save yourself a little work.  If
there is only one recipient, then it's a one-element array.

#############################################

my $recipients = '[EMAIL PROTECTED]';
notify_email('[EMAIL PROTECTED]',$recipients,"test","this is my
body");
#my @recipients = qw([EMAIL PROTECTED] [EMAIL PROTECTED]
[EMAIL PROTECTED]);
#notify_email('[EMAIL PROTECTED]',[EMAIL PROTECTED],"test","this is the
body");

sub notify_email{
   my ($sender,$rcpt,$subj,$body) = @_;
   my $recipient;
   if(ref($rcpt)){
           if(ref($rcpt) eq 'ARRAY'){
                   $recipient = join(',',@{$rcpt});
           }elsif(ref($rcpt) eq 'SCALAR'){
                   $recipient = ${$rcpt};
           }else{
                   die "Invalid recipient parameter!\n";
           }
   }else{
           $recipient = $rcpt;
   }
   print $recipient."\n";
}

#############################################

-----Original Message-----
From: Olivier, Wim W [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, April 20, 2005 12:53 AM
To: Perl Beginners (E-mail)
Subject: GetOpt::Long

Hi all,

Is it possible to use GetOpt::Long (or something similar) in a
subroutine
using @_ instead of in the standard way (using @ARGV)?
I want to have the following scenario, but use GetOpt in a subrouting
within
the main script and pass options (and values) to the subroutine.
The values ($recipient, $subject, $body) must be configurable and they
must
be able to take multiple values, i.e. multiple recipients for a message.


# Notify recipients via SMTP (email)
sub notify_email {
  $ENV{"NTsendmail"}  = $smtp;
  $sender             = "[EMAIL PROTECTED]";
  $recipient          = "[EMAIL PROTECTED]";
  $subject            = "ALERT";
  $body               = join " ", @_;
  $mail               = new NTsendmail;
  $mail->send($sender, $recipient, $subject, $body);
}



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to