Brother chromatic,
I am not having much success reproducing this. If I create this simple script it works. However, if I try it in an application I am working on it doesn't. After a few hours of frustration I have decided to punt. Help please?
Here is a chunk of my code. I am pulling the string out of the database instead of arbitrarily setting it:
my $WhereVal = $Return->[0]->{WhereVal};
my $Temp2 = 2;
warn $WhereVal;
eval "\$Temp = qq/$WhereVal/";
warn $Temp;
The result is that the eval fails. The log shows:
c.AppModule=m.AppModule and m.Application=$Temp2 at (eval 43) line 19.
Use of uninitialized value in concatenation (.) at (eval 43) line 20.
Use of uninitialized value in warn at (eval 43) line 21.
The complete subroutine, less gratuitous debugging code:
sub VWP_RunQuery {
my ($QueryRef, @Params) = @_;
if ($QueryRef) {
VWP_Log(5, "Running query $QueryRef...");
my $stt = "select q.FromVal, q.OrderVal, q.SelectVal, q.WhereVal "
+ .
"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 "\$WhereVal = qq/$Return->[0]->{WhereVal}/";
$stt = $stt . " where " . $WhereVal;
}
if ($OrderVal) {
if (($OrderVal =~ /order by/) || ($OrderVal =~ /ORDER BY/)) {
$stt = $stt . " " . $OrderVal;
} else {
$stt = $stt . " order by " . $OrderVal;
}
}
return VWP_SQL($stt, @Params);
}
}
VWP_StrMessage(1, 13, $QueryRef);
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.