Jari Aalto <jari.aalto@xxxxxxxxx> writes: > +sub maildomain_net > +{ > + my $maildomain; > + eval "use Net::Domain"; > + > + unless ($@) { > + eval "use Net::Domain"; > + unless ($@) { Sorry, but I don't understand the reason why you need to check the same thing twice. The original you borrowed from seems to be much cleanly written; it essentially boils down to: if (eval "require Net::Domain") { my $domain = Net::Domain::Domainname(); ... } without need for separate "unless ($@)", nor doubly nested construct. > +{ > + my $mail_domain_system; # Static variable This, and ... > @@ -917,6 +988,8 @@ X-Mailer: git-send-email $gitversion > } > } > > + my $maildomain; > + ... this, I still don't see the point of them. > @@ -962,9 +1040,10 @@ X-Mailer: git-send-email $gitversion > } > > if (!$smtp) { > - die "Unable to initialize SMTP properly. Check config. ", > + die "Unable to initialize SMTP properly. Check config and use --smtp-debug. ", > "VALUES: server=$smtp_server ", > "encryption=$smtp_encryption ", > + "maildomain=$maildomain", You said you needed a separate local variable for reporting but that doesn't explain why you need three redundant variables. Why can't the code look like this? -- >8 -- snip -- >8 -- my $mail_domain; # toplevel global GetOptions(..., "smtp-domain=s" => \$mail_domain, ...); sub maildomain { maindomain_net() || maildomain_mta() || "localhost.localdomain"; } sub send_message { ... $mail_domain ||= maildomain(); if (ssl) { $smtp ||= Net::SMTP::SSL->new(...); } else { $smtp || Net::SMTL->new(...); } ... if (!$smtp) { die "Unable to... your maildomain is set to $mail_domain"; } } -- 8< -- snap -- 8< -- That is: - $mail_domain can be set from the command line; - once set, ||= ensures that it will we used without needing to call maildomain(); - the value you used unsuccessfully to obtain $smtp is reported. which seems to be more in line with the way how existing code avoids resetting $smtp once it gets a working one. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html