Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Re: Double Interpolation of a String

by chromatic (Archbishop)
on Aug 21, 2001 at 07:47 UTC ( #106462=note: print w/replies, xml ) Need Help??

in reply to Re: Double Interpolation of a String
in thread Double Interpolation of a String

It's possible that $stt is empty in some of the concatenations. A couple of minor style issues might clear it up.

Otherwise, it depends a lot on what's coming back from the database. Without seeing that, it's hard to know what the trouble is. As a side note, I personally wouldn't use this for such a thing. It's very hard to control what variables are in scope and accessible when you pull information out of a database like this.

There's probably a better way. If you describe the situation in SoPW, you'll probably get two or three alternate ideas that aren't as fragile.

sub VWP_RunQuery { my ($QueryRef, @Params) = @_; if ($QueryRef) { VWP_Log(5, "Running query $QueryRef..."); my $stt = "select q.FromVal, q.OrderVal, q.SelectVal, q.WhereV +al " . "from VWPQuery q, VWPQueryRef qr where q.Query=qr.Query and " +. "qr.DBType = ? and qr.Query = ?"; my $Return = VWP_SQL($stt, ($Session::DBType, $QueryRef)); if (@$Return) { my $OrderVal = $Return->[0]->{OrderVal}; $stt = "select " . $Return->[0]->{SelectVal} . " from " . $Return->[0]->{FromVal}; if ($Return->[0]->{WhereVal}) { my $WhereVal = eval "qq/$Return->[0]->{WhereVal}/"; $stt .= " where " . $WhereVal; } if ($OrderVal) { $stt .= " order by" unless $OrderVal =~ /^order by/i; $stt .= " $OrderVal"; } return VWP_SQL($stt, @Params); } } VWP_StrMessage(1, 13, $QueryRef); }

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2023-03-29 07:14 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (70 votes). Check out past polls.