in reply to Re^4: Print hash except first value
in thread Print hash except first value

$ perl -e' my $range = 8_999; my $min = 1_000; my @names = qw( Greg Caroline Joe Dom Mary ); my %hash; for my $n ( @names ) { my $r = $min + int rand $range; $hash{ $n } = $r; } print map( "$_: $hash{$_}\n", @names ), "\n"; for my $i ( 0 .. $#names ) { my @temp = @names; splice @temp, $i, 1; print map( "$_: $hash{$_}\n", @temp ), "\n"; } ' Greg: 7719 Caroline: 8762 Joe: 2774 Dom: 2003 Mary: 8821 Caroline: 8762 Joe: 2774 Dom: 2003 Mary: 8821 Greg: 7719 Joe: 2774 Dom: 2003 Mary: 8821 Greg: 7719 Caroline: 8762 Dom: 2003 Mary: 8821 Greg: 7719 Caroline: 8762 Joe: 2774 Mary: 8821 Greg: 7719 Caroline: 8762 Joe: 2774 Dom: 2003

Replies are listed 'Best First'.
Re^6: Print hash except first value
by joec_ (Scribe) on Dec 21, 2008 at 13:20 UTC
    Hi,
    In relation to my post above, i would like to email myself with the full list, and each other person a modified list (without their name/number). If i create a hash of names and email addresses, and say, i wanted to use sendmail, could anyone show me an implementation, that sets the "To: xxx" header with the email from a hash and the Content to the modified list? I have example code that uses sendmail here:
    my $sendmail = "/usr/sbin/sendmail -t"; my $reply_to = "Reply-to: foo\@bar.com\n"; my $subject = "Subject: Confirmation of your submission\n"; my $content = "Thanks for your submission."; my $to = "bar\@foo.com\n"; my $send_to = "To: ". $to; open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!"; print SENDMAIL $reply_to; print SENDMAIL $subject; print SENDMAIL $send_to; print SENDMAIL "Content-type: text/plain\n\n"; print SENDMAIL $content; close(SENDMAIL);

    Maybe Net::SMTP or another module maybe better, but i am all for the simple approach.

    TIA Joe.

      my $to = $emails{$name};
      my $content = join '', map { "$names[$_]\n" } grep { $_ != $skip } 0..$#names;

      You should be using MIME::Lite or something