--------------030400000904040908010107
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
I am working with an old Perl Library (program module) written in Perl4
and Perl 5 depending who was "hacking the code". My program that calls
it, uses -w and strict and has identified many syntax errors and so
forth in the old library which I fixed. My problem is that this library
needs two variables passed as globals to it to use in one of the
subroutines, One of them is the $dbh variable created when the database
is open. Another is a hash. Both these variables were initiated at the
Main top most level of the program with "my". Unfortunately, this causes
an error and the libraries does not see the global. If I turn off strict
and the -w options and remove the "my" from these variables assignments,
the program works. What is going on? I might point out that the start of
the subroutine that is causing the problem starts like this.
sub SelectRe****t (@[EMAIL PROTECTED]
) {
my ($var,$val) = @[EMAIL PROTECTED]
# Here is the order in which we try to get the re****ts:
# matching userid -> matching group permission -> matching role_id
-> userid empty (for everybody)
my $querystr = "select * from re****t where $var = '$val' and
user_id='$user{userid}'";
print "QS=$querystr\n";
debug("SelectRe****t1: Q=$querystr");
my $my_error = '';
my $sth = $dbh->query($querystr) || ($my_error="$querystr: ".
$dbh->errmsg);
.......
.......
.......
I already found a call in the library that looks like this
my $sth = SelectRe****t('re****t_id',$re****t_id);
Yes it is a hack issue, but the program has worked for years and the
client does not want the code rewritten at present. Does anyone know
what is causing this unstable results with "my" at the global level not
being passed?
One other note. Yes the all the client programs run with strict and -w
turn off. They think it runs faster with the compiler fixing all the
errors when it is executed.
--
------------------------------------------------------------------------
*Michael Barto*
Software Architect
LogiQwest Circle
LogiQwest Inc.
16458 Bolsa Chica Street, # 15
Huntington Beach, CA 92649
http://www.logiqwest.com/
mbarto@[EMAIL PROTECTED]
<mailto:mbarto@[EMAIL PROTECTED]
>
Tel: 714 377 3705
Fax: 714 840 3937
Cell: 714 883 1949
*'tis a gift to be simple*
------------------------------------------------------------------------
This e-mail may contain LogiQwest proprietary information and should be
treated as confidential.
--------------030400000904040908010107
Content-Type: multipart/related;
boundary="------------060007040906070204090506"
--------------060007040906070204090506
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
I am working with an old Perl Library (program module) written in Perl4
and Perl 5 depending who was "hacking the code". My program that
calls
it, uses -w and strict and has identified many syntax errors and so
forth in the old library which I fixed. My problem is that this library
needs two variables passed as globals to it to use in one of the
subroutines, One of them is the $dbh variable created when the database
is open. Another is a hash. Both these variables were initiated at the
Main top most level of the program with "my". Unfortunately, this
causes an error and the libraries does not see the global. If I turn
off strict and the -w options and remove the "my" from these variables
assignments, the program works. What is going on? I might point out
that the start of the subroutine that is causing the problem starts
like this.<br>
<br>
sub SelectRe****t (@[EMAIL PROTECTED]
) {<br>
my ($var,$val) = @[EMAIL PROTECTED]
>
# Here is the order in which we try to get the
re****ts:<br>
# matching userid -> matching group permission ->
matching
role_id -> userid empty (for everybody)<br>
my $querystr = "select * from re****t where $var =
'$val' and
user_id='$user{userid}'";<br>
print "QS=$querystr\n";<br>
debug("SelectRe****t1: Q=$querystr");<br>
my $my_error = '';<br>
my $sth = $dbh->query($querystr) ||
($my_error="$querystr: ".
$dbh->errmsg);<br>
.......<br>
.......<br>
.......<br>
<br>
I already found a call in the library that looks like this<br>
<br>
my $sth = SelectRe****t('re****t_id',$re****t_id);<br>
<br>
Yes it is a hack issue, but the program has worked for years and the
client does not want the code rewritten at present. Does anyone know
what is causing this unstable results with "my" at the global level not
being passed?<br>
<br>
One other note. Yes the all the client programs run with strict and -w
turn off. They think it runs faster with the compiler fixing all the
errors when it is executed.<br>
<br>
<br>
<div class="moz-signature">-- <br>
<meta content="text/html;" http-equiv="Content-Type">
<title></title>
<div class="moz-signature">
<div class="moz-signature">
<table border="0" cellpadding="0" cellspacing="0" width="490">
<tbody>
<tr>
<td colspan="4" width="490">
<hr color="#cccccc"></td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" width="390"><font
face="arial, helvetica, sans-serif"><font size="3"><b>Michael
Barto</b><br>
</font><font size="2">Software Architect<br>
<br>
</font></font></td>
<td rowspan="2" align="right" valign="middle" width="100"><img
alt="LogiQwest Circle" src="cid:part1.04030904.01040707@[EMAIL PROTECTED]
"
height="80" width="81"><br>
</td>
</tr>
<tr>
<td align="left" valign="top" width="220"><font
face="arial, helvetica, sans-serif"> <font color="#003366"
size="2">LogiQwest
Inc.<br>
16458 Bolsa Chica Street, # 15<br>
Huntington Beach, CA 92649<br>
<a
href="http://www.logiqwest.com/">http://www.logiqwest.com/</a><br>
<br>
</font></font></td>
<td width="10"> </td>
<td align="left" valign="top" width="160"><font
face="arial, helvetica, sans-serif"><font color="#003366" size="2"><a
href="mailto:mbarto@[EMAIL PROTECTED]
">mbarto@[EMAIL PROTECTED]
><br>
Tel: 714 377 3705<br>
Fax: 714 840 3937<br>
Cell: 714 883 1949<br>
<br>
</font></font></td>
</tr>
<tr>
<td colspan="4" align="right" width="490"><font color="#ff6633"
face="arial, helvetica, sans-serif" size="2"><strong>'tis a gift to be
simple</strong></font>
<hr color="#cccccc"> </td>
</tr>
<tr>
<td colspan="4" align="center" width="490"> <font
face="arial, helvetica, sans-serif" size="1">This e-mail may contain
LogiQwest
proprietary information and should be treated as confidential.</font>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
--------------060007040906070204090506
Content-Type: image/gif; x-mac-type="47494666"; x-mac-creator="70727677";
name="circle.gif"
Content-Transfer-Encoding: base64
Content-ID: <part1.04030904.01040707@[EMAIL PROTECTED]
>
Content-Disposition: inline;
filename="circle.gif"
R0lGODlhUQBQAJEAAAAAAP////1HA////yH5BAEAAAMALAAAAABRAFAAAAL/jI+pyybSopy0
OvWy3bwfmGSPR5bMGIrmaqEhpqWgM7Ocii0uggexvdm9WrsfsCLk3VLHW43ZjCp5T6qsijSu
fiKt75qcdI/cMYzaI6ZLRvP54w56Pen4FI11eZPzRtwO9wYD0jcoh9OF5aN4UhOm89hoBtHH
KEWXeLFGo3PZkeg4xxcpZqmmtfkFhllIAbgYJvRa2hqRCRn7NCuRmvXaO2jqR0p7C1trBZlc
CgWGqJInvIxMM9MKesxIjAYnDdvNO7Z74jfkWhT+TN3t3WmTGlk0PrwuiRofCmyrX1zV68/P
Xjtnun4ZIhGQ3h6DQZrdCQSRYLBYTrjRAreo2p+E/1mWhbOoB1S+cg0vhcSG0R0eT43AGStU
kOM7ayg2ntpGhqZFdio14gTyqIcxj8cQGsVFaOgHcphYaJik1BNKJy+jqlKTrY3IZxLZUep5
jpNYK/KWOlsVbRWUkDIyRlS0JunVdBQvmJ3i7+7BpfWsPjQp61tLr6YGfnqq1hxPluc2imK8
ZahfyKwkAyJWU6dZN5nH4oH6r7Bcpno150LpV7SSghm/jkWMVNastKqgYbudGdjlf8rIZpsr
e/PFxK6Q0MEabLDiiHaZzU0Xey9z5rn3HF64sHcOiJOpan3MJu/2n1k/g23+cXnk76O0N6NN
Gnn57f30cofNivB55dOvrFzXTx9ReVBWzUr7KSMMeb60ZUIdABEIj3vPeUagT3xIGF9/UUxl
31qucfUbYJWQ81SJJmpiWFP7KVghhm6JsWKLtmQ4QigyluRQbX/dyItxE/LYIGspAknSjlEU
AAA7
--------------060007040906070204090506--
--------------030400000904040908010107--


|