Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: More loop issues (more well named subs that take args return values, less global vars, placeholders)

by Anonymous Monk
on Jun 11, 2016 at 00:02 UTC ( [id://1165381]=note: print w/replies, xml ) Need Help??


in reply to More loop issues

You need more subs, less global variables, subs that take arguments and return values, subs with meaningful names, with no numbers in the name

When you write programs like this they're easy to read and "loop issues" solve themselves

while( $row = $sth->fetchrow_hashref) { my($con, $job, $pic) = GetContactJobPic( $dbh, $row->{jobtype} ); MailNotifyConJobPic( $row->{email}, $con, $job, $pic, ... ); } ... sub GetContactJobPic { my( $dbh, $jobtype ) = @_; my $hashref = $dbh->selectrow_hashref( q{Select * from database where jobtype=? AND active='yes' ORDER BY + RAND() LIMIT 1}m {}, $jobtype ); return @{$hashref}{qw' contact jobnum picture'}; } sub MailNotifyConJobPic { my( $mail, $con, $job, $pic, ... ) = @_; ... ## Mail::Sendmail or ... }

Also placeholders are always a good idea bobby-tables.com: A guide to preventing SQL injection in Perl

Also because that sendmail stuff is still part of the code you posted, others who read this node should also heed caution

Replies are listed 'Best First'.
Re^2: More loop issues (more well named subs that take args return values, less global vars, placeholders)
by stevieb (Canon) on Jun 11, 2016 at 01:46 UTC
    If we're warning, we should also remind about  use strict; and  use warnings; again, and to stop using perl4 type sub calls... The & is not needed.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1165381]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2024-03-28 11:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found