Re: Huh? 4=3?

2013-05-08 Thread Derek Jones
Hi all,

> 
> You are right -- but this produces 4 first, as I had always thought it
> would, and then 6, as I don't quite understand.  I would never use
> that kind of expression, and I sorta maybe understand why it says 6,
> but only in hindsight.
> 
> #!/usr/bin/perl
> 
> my @ary = (1,2,,4,,6);
> print "Step 1: ", scalar(@ary), "\n";
> print "Step 2: ", scalar(1,2,,4,,6), "\n";

In the first example, scalar is operating on the array to give you its size. So 
you do indeed get 4, because only 4 elements are allocated. That is *indeed* an 
unusual and somewhat apparently counterintutive feature since very often in 
Perl, otherwise "undefined values" have storage autovifified when assigned 
under the hood and if interrogated with the defined operator will give you 
false. i.e. "the box is there but empty".

If you want to tell if the element is there at all - you can use exists.

E.g. 

print "Hi there element 4\n" if exists $ary[4];
print "Hi there element 5\n" if exists $ary[5];

which - in the case of @ary above would not print anything since only elements 
0..3 exist.

If you wanted 6 elements, as was noted earlier, you would have to preserve the 
indexing of the "missing" elements by using undef (see below).

In the 2nd example, as we've noted, - you are simply getting the last value in 
a list - 6  in this case.

So, the question is - why does Perl not keep the otherwise "undefined" elements 
in the list when they are being represented by ,, ?

And the answer is unusual in that it's still seeing 

my @ary = (1,2,,4,,6);

as a sequence on the right hand side - in which there are only 4 scalar items.

So, to make it have 6, you'd say:

my @ary = (1,2,undef,4,undef,6);

That will autovivify all 6 elements, each of which will exist now according to 
exists, but only 4 of which will have defined values according to defined.

Here's an updated version of your example:

--

#!/usr/bin/perl

print "Original\n";

my @ary = (1,2,,4,,6);

print "Step 1: ", scalar(@ary), "\n";
print "Step 2: ", scalar(1,2,,4,,6), "\n";

print "Hi there element 4\n" if exists $ary[4]; # Does not print
print "Hi there element 5\n" if exists $ary[5]; # Does not print

print "New\n";

my @ary2 = (1,2,undef,4,undef,6);

print "Step 1: ", scalar(@ary2), "\n";
print "Step 2: ", scalar(1,2,undef,4,undef,6), "\n";

print "Hi there element 4\n" if exists $ary2[4];  #Now prints
print "Hi there element 5\n" if exists $ary2[5]   #Now prints


--

This is somewhat counterintuitive in that, if you had an array where you 
specified the size of a slice on the left, Perl would automatically allocate 
that number of elements and automatically assign undef to the ones not 
otherwise filled. But…. not in the way you expect.

E.g.

@ary3[0..5] = (1,2,,4,,6);

Does *not* preserve the gaps - for the exact same reason as above. But, you do 
get elements 4 and 5 now - but it's *those* that are undef - and the actual 
list (1,2,4,6) gets assigned to elements 0..3

E.g.


print "New2\n";

my @ary3;

@ary3[0..5] = (1,2,,4,,6);

print "Size: ", scalar(@ary3), "\n";

print "Hi there element 4\n" if exists $ary3[4];  #Prints
print "Hi there element 5\n" if exists $ary3[5];  #Prints

print "Hidef 4\n" if defined $ary3[4];  #Does not print
print "Hidef 5\n" if defined $ary3[5];  #Does not print


$"=":";

print "Elements\n";

print "-->@ary3<--\n";   # Notice the empty (undefined) two elements at the 
*end*… ;-)

Kind regards

Derek.



Re: Huh? 4=3?

2013-05-08 Thread felix
On Wed, May 08, 2013 at 06:22:09PM -0700, James Marshall wrote:
> It shows 6 because a comma-separated literal list, when interpreted as a
> scalar, evaluates to the final value in the list, not the length of the
> list.  If you evaluate "scalar(1,2,,4,,7)", it will equal 7.  That's the
> comma operator at work-- even though it looks like a list (and both use
> commas), it's really just a sequential set of expressions.

I think I've forgotten more useless perl trivia than I should have...
I use the comma operator sometimes, but never inside scalar().  Didn't
recognize it.  TMTOWTMakeAMess.

-- 
... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
 Felix Finch: scarecrow repairman & rocket surgeon / fe...@crowfix.com
  GPG = E987 4493 C860 246C 3B1E  6477 7838 76E9 182E 8151 ITAR license #4933
I've found a solution to Fermat's Last Theorem but I see I've run out of room o


Re: Huh? 4=3?

2013-05-08 Thread James Marshall
It shows 6 because a comma-separated literal list, when interpreted as a
scalar, evaluates to the final value in the list, not the length of the
list.  If you evaluate "scalar(1,2,,4,,7)", it will equal 7.  That's the
comma operator at work-- even though it looks like a list (and both use
commas), it's really just a sequential set of expressions.

Cheers,
James


On Wed, May 8, 2013 at 5:14 PM,  wrote:

> On Wed, May 08, 2013 at 02:04:37PM -0400, Derek Jones wrote:
> > Huh?
> >
> > That produces 6 - as it should. What version of Perl are you working
> with?
>
> > On May 8, 2013, at 1:58 PM, fe...@crowfix.com wrote:
> >
> > > scalar(1,2,,4,,6)
>
> You are right -- but this produces 4 first, as I had always thought it
> would, and then 6, as I don't quite understand.  I would never use
> that kind of expression, and I sorta maybe understand why it says 6,
> but only in hindsight.
>
> #!/usr/bin/perl
>
> my @ary = (1,2,,4,,6);
> print "Step 1: ", scalar(@ary), "\n";
> print "Step 2: ", scalar(1,2,,4,,6), "\n";
>
> --
> ... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
>  Felix Finch: scarecrow repairman & rocket surgeon / fe...@crowfix.com
>   GPG = E987 4493 C860 246C 3B1E  6477 7838 76E9 182E 8151 ITAR license
> #4933
> I've found a solution to Fermat's Last Theorem but I see I've run out of
> room o
>


Re: Huh? 4=3?

2013-05-08 Thread felix
On Wed, May 08, 2013 at 02:04:37PM -0400, Derek Jones wrote:
> Huh?
> 
> That produces 6 - as it should. What version of Perl are you working with?

> On May 8, 2013, at 1:58 PM, fe...@crowfix.com wrote:
> 
> > scalar(1,2,,4,,6) 

You are right -- but this produces 4 first, as I had always thought it
would, and then 6, as I don't quite understand.  I would never use
that kind of expression, and I sorta maybe understand why it says 6,
but only in hindsight.

#!/usr/bin/perl

my @ary = (1,2,,4,,6);
print "Step 1: ", scalar(@ary), "\n";
print "Step 2: ", scalar(1,2,,4,,6), "\n";

-- 
... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
 Felix Finch: scarecrow repairman & rocket surgeon / fe...@crowfix.com
  GPG = E987 4493 C860 246C 3B1E  6477 7838 76E9 182E 8151 ITAR license #4933
I've found a solution to Fermat's Last Theorem but I see I've run out of room o


Re: Huh? 4=3?

2013-05-08 Thread Chad Wallace
On Wed, 8 May 2013 09:30:18 -0700
Bill Ward  wrote:

> My guess is that get_value() is returning an empty array rather than
> an undef scalar when the values are null. Try copying each one to a
> scalar variable and including the list of variables in the execute().
> It'd be more readable that way anyway. Or if you must put them all
> one one line like this, add the scalar() function on each argument.

I use this idiom:

... get_value(...) || undef, ...get_value(...) || undef, ...

If you don't want undef, you can use "|| ''" or "|| 0" instead.


> On Wed, May 8, 2013 at 9:18 AM, Bruce Johnson
> wrote:
> 
> > Getting the error:
> >
> > DBD::Oracle::st execute failed: called with 3 bind variables when 4
> > are needed [for Statement "insert into employee_fte_annualrate_l
> > (emplid, emptype_cd, fte, annual_rate) values(?,?,?,?)" with
> > ParamValues: :p1='22057713', :p2='R', :p3='1', :p4='47311']
> > at /home/oraweb/perl/frs/ kfsupdate.pl line 64,  line 581.
> >
> > I'm pretty sure I count 4 placeholders and 4 parameter values in
> > that error message, so where is the '3 bind variables' coming from?
> >
> > here's the cursor definition:
> >
> > my $csr_emp_info = $lda->prepare("insert into
> > employee_fte_annualrate_l (emplid, emptype_cd, fte, annual_rate)
> > values(?,?,?,?)");
> >
> > I'm pulling the data from an LDAP query, here's the offending line
> > 64 (where $mesg is the returned LDAP object):
> >
> > $csr_emp_info->execute($mesg->entry($n)->get_value('emplId'),
> > $mesg->entry($n)->get_value('employeeType'),$mesg->entry($n)->get_value('employeeFTE'),$mesg->entry($n)->get_value('employeeTotalAnnualRate'));
> >
> > All the columns allow null entries, and these are all single-valued
> > entries in the LDAP schema.
> >
> >
> > --
> > Bruce Johnson
> > University of Arizona
> > College of Pharmacy
> > Information Technology Group
> >
> > Institutions do not have opinions, merely customs
> >
> >
> >
> 
> 


-- 

C. Chad Wallace, B.Sc.
The Lodging Company
http://www.lodgingcompany.com/
OpenPGP Public Key ID: 0x262208A0



Re: Huh? 4=3?

2013-05-08 Thread Bruce Johnson

On May 8, 2013, at 10:58 AM, fe...@crowfix.com wrote:

> 
> Is that what's going on here -- the original code imparted a list
> context, which triggered another perl gotcha, whereby missing list
> values simply disappear:
> 

And I remember now the reason the error message is confusing, I'll bet that was 
an actual bug I discovered in (iirc) DBI or DBD::Oracle which was fixed, but 
not on this particular server, because we're still constrained to running a 
very old version for various reasons. The error message actually displays the 
values for the last successful insert not the one that failed.

Mystery now solved.

-- 
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group

Institutions do not have opinions, merely customs




Re: Huh? 4=3?

2013-05-08 Thread felix
On Wed, May 08, 2013 at 09:43:27AM -0700, Bill Ward wrote:
> Cool. That whole scalar vs list context thing is one of Perl's biggest
> strengths, but also one of its biggest weaknesses (in that it is a common
> source of bugs like this). When you see head-scratching problems, it's one
> of the first things to look for.

Just guessing here, not familiar with the particular code in question.
But I have been bitten a few times by code which returns false in the
'proper' manner

return;

instead of forcing a scalar return

return undef;

or list return

return ();

Is that what's going on here -- the original code imparted a list
context, which triggered another perl gotcha, whereby missing list
values simply disappear:

scalar(1,2,,4,,6) ---> 4, not 6

I understand and appreciate most of Perl's little tricks, but they
sometimes catch me by surprise and elicit a few curses while debugging.

-- 
... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
 Felix Finch: scarecrow repairman & rocket surgeon / fe...@crowfix.com
  GPG = E987 4493 C860 246C 3B1E  6477 7838 76E9 182E 8151 ITAR license #4933
I've found a solution to Fermat's Last Theorem but I see I've run out of room o


Re: Huh? 4=3?

2013-05-08 Thread Bill Ward
Cool. That whole scalar vs list context thing is one of Perl's biggest
strengths, but also one of its biggest weaknesses (in that it is a common
source of bugs like this). When you see head-scratching problems, it's one
of the first things to look for.


On Wed, May 8, 2013 at 9:39 AM, Bruce Johnson
wrote:

> Well, changing the code to:
>
> my $eid=$mesg->entry($n)->get_value('emplId');
> my $etp=$mesg->entry($n)->get_value('employeeType');
> my $efte=$mesg->entry($n)->get_value('employeeFTE');
> my $ear=$mesg->entry($n)->get_value('employeeTotalAnnualRate');
>
> $csr_emp_info->execute($eid,$etp,$efte,$ear);
>
> like you suggested fixed it.
>
> Thanks.
>
> On May 8, 2013, at 9:30 AM, Bill Ward  wrote:
>
> > My guess is that get_value() is returning an empty array rather than an
> undef scalar when the values are null. Try copying each one to a scalar
> variable and including the list of variables in the execute(). It'd be more
> readable that way anyway. Or if you must put them all one one line like
> this, add the scalar() function on each argument.
> >
> >
> > On Wed, May 8, 2013 at 9:18 AM, Bruce Johnson <
> john...@pharmacy.arizona.edu> wrote:
> > Getting the error:
> >
> > DBD::Oracle::st execute failed: called with 3 bind variables when 4 are
> needed [for Statement "insert into employee_fte_annualrate_l (emplid,
> emptype_cd, fte, annual_rate) values(?,?,?,?)" with ParamValues:
> :p1='22057713', :p2='R', :p3='1', :p4='47311'] at /home/oraweb/perl/frs/
> kfsupdate.pl line 64,  line 581.
> >
> > I'm pretty sure I count 4 placeholders and 4 parameter values in that
> error message, so where is the '3 bind variables' coming from?
> >
> > here's the cursor definition:
> >
> > my $csr_emp_info = $lda->prepare("insert into employee_fte_annualrate_l
> (emplid, emptype_cd, fte, annual_rate) values(?,?,?,?)");
> >
> > I'm pulling the data from an LDAP query, here's the offending line 64
> (where $mesg is the returned LDAP object):
> >
> > $csr_emp_info->execute($mesg->entry($n)->get_value('emplId'),
> $mesg->entry($n)->get_value('employeeType'),$mesg->entry($n)->get_value('employeeFTE'),$mesg->entry($n)->get_value('employeeTotalAnnualRate'));
> >
> > All the columns allow null entries, and these are all single-valued
> entries in the LDAP schema.
> >
> >
> > --
> > Bruce Johnson
> > University of Arizona
> > College of Pharmacy
> > Information Technology Group
> >
> > Institutions do not have opinions, merely customs
> >
> >
> >
> >
> >
> > --
> > Check out my LEGO blog at brickpile.com
> > Follow/friend me: Facebook • Flickr • Twitter • LinkedIn
>
> --
> Bruce Johnson
> University of Arizona
> College of Pharmacy
> Information Technology Group
>
> Institutions do not have opinions, merely customs
>
>
>


-- 
Check out my LEGO blog at brickpile.com 
Follow/friend me: Facebook  •
Flickr•
Twitter  •
LinkedIn


Re: Huh? 4=3?

2013-05-08 Thread Bruce Johnson
Well, changing the code to:

my $eid=$mesg->entry($n)->get_value('emplId');
my $etp=$mesg->entry($n)->get_value('employeeType');
my $efte=$mesg->entry($n)->get_value('employeeFTE');
my $ear=$mesg->entry($n)->get_value('employeeTotalAnnualRate');

$csr_emp_info->execute($eid,$etp,$efte,$ear);

like you suggested fixed it.

Thanks.

On May 8, 2013, at 9:30 AM, Bill Ward  wrote:

> My guess is that get_value() is returning an empty array rather than an undef 
> scalar when the values are null. Try copying each one to a scalar variable 
> and including the list of variables in the execute(). It'd be more readable 
> that way anyway. Or if you must put them all one one line like this, add the 
> scalar() function on each argument.
> 
> 
> On Wed, May 8, 2013 at 9:18 AM, Bruce Johnson  
> wrote:
> Getting the error:
> 
> DBD::Oracle::st execute failed: called with 3 bind variables when 4 are 
> needed [for Statement "insert into employee_fte_annualrate_l (emplid, 
> emptype_cd, fte, annual_rate) values(?,?,?,?)" with ParamValues: 
> :p1='22057713', :p2='R', :p3='1', :p4='47311'] at 
> /home/oraweb/perl/frs/kfsupdate.pl line 64,  line 581.
> 
> I'm pretty sure I count 4 placeholders and 4 parameter values in that error 
> message, so where is the '3 bind variables' coming from?
> 
> here's the cursor definition:
> 
> my $csr_emp_info = $lda->prepare("insert into employee_fte_annualrate_l 
> (emplid, emptype_cd, fte, annual_rate) values(?,?,?,?)");
> 
> I'm pulling the data from an LDAP query, here's the offending line 64 (where 
> $mesg is the returned LDAP object):
> 
> $csr_emp_info->execute($mesg->entry($n)->get_value('emplId'), 
> $mesg->entry($n)->get_value('employeeType'),$mesg->entry($n)->get_value('employeeFTE'),$mesg->entry($n)->get_value('employeeTotalAnnualRate'));
> 
> All the columns allow null entries, and these are all single-valued entries 
> in the LDAP schema.
> 
> 
> --
> Bruce Johnson
> University of Arizona
> College of Pharmacy
> Information Technology Group
> 
> Institutions do not have opinions, merely customs
> 
> 
> 
> 
> 
> -- 
> Check out my LEGO blog at brickpile.com
> Follow/friend me: Facebook • Flickr • Twitter • LinkedIn

-- 
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group

Institutions do not have opinions, merely customs




Re: Huh? 4=3?

2013-05-08 Thread Bill Ward
My guess is that get_value() is returning an empty array rather than an
undef scalar when the values are null. Try copying each one to a scalar
variable and including the list of variables in the execute(). It'd be more
readable that way anyway. Or if you must put them all one one line like
this, add the scalar() function on each argument.


On Wed, May 8, 2013 at 9:18 AM, Bruce Johnson
wrote:

> Getting the error:
>
> DBD::Oracle::st execute failed: called with 3 bind variables when 4 are
> needed [for Statement "insert into employee_fte_annualrate_l (emplid,
> emptype_cd, fte, annual_rate) values(?,?,?,?)" with ParamValues:
> :p1='22057713', :p2='R', :p3='1', :p4='47311'] at /home/oraweb/perl/frs/
> kfsupdate.pl line 64,  line 581.
>
> I'm pretty sure I count 4 placeholders and 4 parameter values in that
> error message, so where is the '3 bind variables' coming from?
>
> here's the cursor definition:
>
> my $csr_emp_info = $lda->prepare("insert into employee_fte_annualrate_l
> (emplid, emptype_cd, fte, annual_rate) values(?,?,?,?)");
>
> I'm pulling the data from an LDAP query, here's the offending line 64
> (where $mesg is the returned LDAP object):
>
> $csr_emp_info->execute($mesg->entry($n)->get_value('emplId'),
> $mesg->entry($n)->get_value('employeeType'),$mesg->entry($n)->get_value('employeeFTE'),$mesg->entry($n)->get_value('employeeTotalAnnualRate'));
>
> All the columns allow null entries, and these are all single-valued
> entries in the LDAP schema.
>
>
> --
> Bruce Johnson
> University of Arizona
> College of Pharmacy
> Information Technology Group
>
> Institutions do not have opinions, merely customs
>
>
>


-- 
Check out my LEGO blog at brickpile.com 
Follow/friend me: Facebook  •
Flickr•
Twitter  •
LinkedIn


Huh? 4=3?

2013-05-08 Thread Bruce Johnson
Getting the error:

DBD::Oracle::st execute failed: called with 3 bind variables when 4 are needed 
[for Statement "insert into employee_fte_annualrate_l (emplid, emptype_cd, fte, 
annual_rate) values(?,?,?,?)" with ParamValues: :p1='22057713', :p2='R', 
:p3='1', :p4='47311'] at /home/oraweb/perl/frs/kfsupdate.pl line 64,  
line 581.

I'm pretty sure I count 4 placeholders and 4 parameter values in that error 
message, so where is the '3 bind variables' coming from?

here's the cursor definition:

my $csr_emp_info = $lda->prepare("insert into employee_fte_annualrate_l 
(emplid, emptype_cd, fte, annual_rate) values(?,?,?,?)");

I'm pulling the data from an LDAP query, here's the offending line 64 (where 
$mesg is the returned LDAP object):

$csr_emp_info->execute($mesg->entry($n)->get_value('emplId'), 
$mesg->entry($n)->get_value('employeeType'),$mesg->entry($n)->get_value('employeeFTE'),$mesg->entry($n)->get_value('employeeTotalAnnualRate'));

All the columns allow null entries, and these are all single-valued entries in 
the LDAP schema.


-- 
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group

Institutions do not have opinions, merely customs




Re: Relevance of ChildHandles

2013-05-08 Thread Jens Rehsack

On 08.05.13 00:05, Tim Bunce wrote:
[...]

At this stage in the life of the DBI I think it's reasonable to assume
that there isn't a leak in the DBI itself. If there was then a lot of
people would be affected and complaining about it.


I think this assumption is heavily wrong. From my jobs I learned one
thing the last years: do it quick. To illustrate what I mean saying
that, see following exampple.

In a particular project we had the issue, that every monday morning
our web-interface was inoperable because of an invalid $dbh (which
was cached). The question from our manager was: can you say in 10
minutes why and how to fix and can you guarantee fix it until lunch?
Otherwise - implement a cron controlled web-server restart each
morning at 5.

Because of personal interests I debugged later into it (and fixed
it a few weeks later - "guaranteed") ...

What I'm trying to say - when administrators see there web-server
machines running out of memory, the implement a scheduled restart
in the pool of machines.

I really don't know business relying on web-services running
qualified monitoring with performance measurement (some do, but
don't know what they measure and finally one company really does).

Sorry for complaining ;)

Cheers
--
Jens Rehsack


RE: DBI Module installtion

2013-05-08 Thread Anoop Kumar Paramesweran
Hi Support,

DBI has been successfully installed after the instaltion of XLC trail 
version..Now I am facing issue with DBD-oracle..

I was trying to install DBD module but I receve the errors

bash-3.2# perl Makefile.PL
Using DBI 1.625 (for perl 5.010001 on aix-thread-multi) installed in 
/usr/opt/perl5/lib/site_perl/5.10.1/aix-thread-multi/auto/DBI/

Configuring DBD::Oracle for perl 5.010001 on aix (aix-thread-multi)

Remember to actually *READ* the README file! Especially if you have any 
problems.

Trying to find an ORACLE_HOME
Your LIBPATH env var is set to ''

  The ORACLE_HOME environment variable is not set and I couldn't guess it.
  It must be set to hold the path to an Oracle installation directory
  on this machine (or a machine with a compatible architecture).
  See the appropriate README file for your OS for more information.
  ABORTED!
  

  After this I set the path

  export ORACLE_BASE=/u01/app/oracle/product
  export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
  export SHLIB_PATH=$ORACLE_HOME/lib
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  export 
PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/bin/x11:/usr/local/bin:/usr/vacpp/bin:$PATH
export ORACLE_SID=


Then I receive these errors
==
bash-3.2# perl Makefile.PL
Using DBI 1.625 (for perl 5.010001 on aix-thread-multi) installed in 
/usr/opt/perl5/lib/site_perl/5.10.1/aix-thread-multi/auto/DBI/

Configuring DBD::Oracle for perl 5.010001 on aix (aix-thread-multi)

Remember to actually *READ* the README file! Especially if you have any 
problems.

Installing on a aix, Ver#5.3
Using Oracle in /u01/app/oracle/product/11.2.0/dbhome_1
DEFINE _SQLPLUS_RELEASE = "1102000300" (CHAR)
Oracle version 11.2.0.3 (11.2)
Found /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk
Using /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk
Your LIBPATH env var is set to ''
WARNING: Your LIBPATH env var doesn't include 
'/u01/app/oracle/product/11.2.0/dbhome_1/lib' but probably needs to.
Reading /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk
Reading /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
Deleting -b64 from COMPOBJS because -b64 doesn't exist.
WARNING: Oracle 
/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk doesn't define a 
'build' rule.

WARNING: I will now try to guess how to build and link DBD::Oracle for 
you.
 This kind of guess work is very error prone and Oracle-version 
sensitive.
 It is possible that it won't be supported in future versions 
of DBD::Oracle.
 *PLEASE* notify dbi-users about exactly _why_ you had to build 
it this way.

Found header files in 
/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/public.

client_version=11.2


DEFINE= -DUTF8_SUPPORT -DORA_OCI_VERSION=\"11.2.0.3\" -DORA_OCI_102 
-DORA_OCI_112


Checking for functioning wait.ph


System: perl5.010001 aix dennis01 3 5 00c72e9a4c00
Compiler:   xlc_r -q32 -O -D_ALL_SOURCE -D_ANSI_C_SOURCE 
-D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN 
-DNEED_PTHREAD_INIT -qlanglvl=extended -I/usr/local/include -q32 -D_LARGE_FILES 
-qlonglong
Linker: /usr/bin/ld
Sysliblist: /lib/crt0_64.o -ldl -lc -lm -lpthreads -lodm -lbsd_r -lld 
-lperfstat
Oracle makefiles would have used these definitions but we override them:
  CC:   $(ORACLE_HOME)/bin/oraxlc $(ORAXLCFLAGS)
  CFLAGS:   $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
   [$(GFLAG) -O3 $(CDEBUG) -q64 -DSS_64BIT_SERVER -qwarn64 
-qinfo=uni -DAIXRIOS -qflag=s:s 
-I/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/demo 
-I/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/public 
-I/u01/app/oracle/product/11.2.0/dbhome_1/plsql/public 
-I/u01/app/oracle/product/11.2.0/dbhome_1/network/public -DLDAP_CM $(LPFLAGS) 
$(PLSQLNCGFLAGS) $(USRFLAGS)]
  LDFLAGS:  -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME)
   [-o $@ -L/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ 
-L$(LIBHOME)]
Linking with /lib/crt0_64.o -lclntsh -brtl -lld -lm  -ldl -lc -lm 
-lpthreads -lodm -lbsd_r -lld -lperfstat -lm -lpthreads [from $(OCISHAREDLIBS)]


WARNING: You will may need to rebuild perl using the xlc_r compiler.
 The important thing is that perl and DBD::Oracle be built with 
the same compiler.
 You may also need to: ORACCENV='cc=xlc_r'; export ORACCENV
 Also see README.aix for gcc instructions and read about the -p 
option.
Checking if your kit is complete...
Looks good
Unrecognized ar

Re: Relevance of ChildHandles

2013-05-08 Thread Alberto Simões
Hello


On Tue, May 7, 2013 at 11:05 PM, Tim Bunce  wrote:

>
>
> The DBI purges undef entries from ChildHandles from time to time.
> (Specifically whenever the number of entries is a multiple of 120.)
>

Confirmed. Thanks

>
> At this stage in the life of the DBI I think it's reasonable to assume
> that there isn't a leak in the DBI itself. If there was then a lot of
> people would be affected and complaining about it.
>
>
Yeah, that is my though too, but I'm trying to look to all possibilities.
My server is crashing too often :-)

Thanks



-- 
Alberto Simões