Is this how you were talking about getting rid of globals, and does this seem correct?
#!/usr/bin/perl -T use strict; use warnings; use lib '/home/perl-lib/modules'; use CGI; use Email::Valid; use Mail::Mailer; my $q = CGI->new(); print $q->header(); check_fields($q); sub check_fields { my @fields = qw(name email city state message); foreach my $field (@fields) { next if ($q->param($field)); print 'Please fill in the blank fields.\n'; exit; } unless (Email::Valid->address($q->param('email'))) { print 'The email address entered was invalid.\n'; } } sub send_email { my $q = shift; my $m = Mail::Mailer->new('sendmail'); $m->open({ From => $q->param('email'), To => 'perl <[EMAIL PROTECTED]>', Subject => '[INFO] Site Comment', }) or die $!; print $m "Name: " . ucfirst($q->param('name')) . "\n"; print $m "Location: " . ucfirst($q->param('city')) . ", " . $q->param('state') . "\n\n"; print $m $q->param('message'); $m->close(); } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>