Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Hidden Secrets of PERL

by jbrugger (Parson)
on Oct 12, 2006 at 05:33 UTC ( [id://577752]=note: print w/replies, xml ) Need Help??


in reply to Hidden Secrets of PERL

Not a real hidden secret, and mentioned on this site before: (however i use it, since it's save for my examle): the x operator.
have a look at the following example:
my $sql = join(",", @allsearchterms); my $sth = $dbh->prepare("select * from table where value in($sql)"); # You need to place qutes arount the sql-items, but you'll get the poi +nt here... $sth->execute();
As you know, this isn't safe (sql Piggybacking)
Now concider the next code example:
my $qm = join ',', ('?') x @allsearchterms; my $sth = $dbh->prepare("select * from table where value in($qm)"); $sth->execute(@allsearchterms);
As you see, a neat feature of Perl :)

Update:
code adjusted as suggested by Hue-Bond

"We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise." - Larry Wall.

Replies are listed 'Best First'.
Re^2: Hidden Secrets of PERL
by Hue-Bond (Priest) on Oct 12, 2006 at 10:24 UTC
    My $qm = '?,'x scalar(@allsearchterms);

    The argument at the right of x is in scalar context, so no need to call scalar. Besides it, you can use join to get rid of the chop:

    my $qm = join ',', ('?') x @allsearchterms;

    --
    David Serrano

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-04-25 11:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found