Manual Pages for UNIX Darwin command on man DBI::PurePerl
MyWebUniversity

Manual Pages for UNIX Darwin command on man DBI::PurePerl

DBI::PurePerl(3) User Contributed Perl Documentation DBI::PurePerl(3)

NAME

DBI::PurePerl - a DBI emulation using pure perl (no C/XS compilation

required)

SYNOPSIS

BEGIN { $ENV{DBIPUREPERL} = 2 }

use DBI;

DESCRIPTION

This is a pure perl emulation of the DBI internals. In almost all cases you will be better off using standard DBI since the portions of the standard version written in C make it *much* faster. However, if you are in a situation where it isn't possible to install a

compiled version of standard DBI, and you're using pure-perl DBD

drivers, then this module allows you to use most common features of DBI without needing any changes in your scripts. EEXXPPEERRIIMMEENNTTAALL SSTTAATTUUSS

DBI::PurePerl is new so please treat it as experimental pending more

extensive testing. So far it has passed all tests with DBD::CSV, DBD::AnyData, DBD::XBase, DBD::Sprite, DBD::mysqlPP. Please send bug reports to Jeff Zucker at with a cc to

.

UUSSAAGGEE The usage is the same as for standard DBI with the exception that you need to set the enviornment variable DBIPUREPERL if you want to use the PurePerl version. DBIPUREPERL == 0 (the default) Always use compiled DBI, die if it isn't properly compiled & installed DBIPUREPERL == 1 Use compiled DBI if it is properly compiled & installed, otherwise use PurePerl DBIPUREPERL == 2 Always use PurePerl You may set the enviornment variable in your shell (e.g. with set or setenv or export, etc) or else set it in your script like this:

BEGIN { $ENV{DBIPUREPERL}=2 }

before you "use DBI;". IINNSSTTAALLLLAATTIIOONN In most situations simply install DBI (see the DBI pod for details). In the situation in which you can not install DBI itself, you may manually copy DBI.pm and PurePerl.pm into the appropriate directories. For example: cp DBI.pm /usr/jdoe/mylibs/. cp PurePerl.pm /usr/jdoe/mylibs/DBI/. Then add this to the top of scripts: BEGIN {

$ENV{DBIPUREPERL} = 1; # or =2

unshift @INC, '/usr/jdoe/mylibs'; } (Or should we perhaps patch Makefile.PL so that if DBIPUREPERL is set to 2 prior to make, the normal compile process is skipped and the files are installed automatically?) DDIIFFFFEERREENNCCEESS BBEETTWWEEEENN DDBBII AANNDD DDBBII::::PPuurreePPeerrll AAttttrriibbuutteess Boolean attributes still return boolean values but the actual values used may be different, i.e., 0 or undef instead of an empty string. Some handle attributes are either not supported or have very limited functionality: ActiveKids InactiveDestroy Kids Taint TaintIn TaintOut (and probably others) TTrraacciinngg Trace functionality is more limited and the code to handle tracing is only embeded into DBI:PurePerl if the DBITRACE environment variable is defined. To enable total tracing you can set the DBITRACE environment variable as usual. But to enable individual handle tracing using the trace() method you also need to set the DBITRACE environment variable, but set it to 0. PPaarraammeetteerr UUssaaggee CChheecckkiinngg The DBI does some basic parameter count checking on method calls.

DBI::PurePerl doesn't.

SSppeeeedd

DBI::PurePerl is slower. Although, with some drivers in some contexts

this may not be very significant for you. By way of example... the test.pl script in the DBI source distribution has a simple benchmark that just does:

my $nulldbh = DBI->connect('dbi:NullP:','','');

my $i = 10000;

$nulldbh->prepare('') while $i-;

In other words just prepares a statement, creating and destroying a statement handle, over and over again. Using the real DBI this runs at

~4550 handles per second whereas DBI::PurePerl manages ~2800 per second

on the same machine (not too bad really). MMaayy nnoott ffuullllyy ssuuppppoorrtt hash()

If you want to use type 1 hash, i.e., "hash($string,1)" with

DBI::PurePerl, you'll need version 1.56 or higher of Math::BigInt

(available on CPAN). DDooeessnn''tt ssuuppppoorrtt preparse()

The DBI->preparse() method isn't supported in DBI::PurePerl.

DDooeessnn''tt ssuuppppoorrtt DDBBDD::::PPrrooxxyy There's a subtle problem somewhere I've not been able to identify.

DBI::ProxyServer seem to work fine with DBI::PurePerl but DBD::Proxy

does not work 100% (which is sad because that would be far more useful

:) Try re-enabling t/80proxy.t for DBI::PurePerl to see if the problem

that remains will affect you're usage. OOtthheerrss

can() - doesn't have any special behaviour

Please let us know if you find any other differences between DBI and

DBI::PurePerl.

AUTHORS Tim Bunce and Jeff Zucker. Tim provided the direction and basis for the code. The original idea for the module and most of the brute force porting from C to Perl was by Jeff. Tim then reworked some core parts to boost the performance and accuracy of the emulation. Thanks also to Randal Schwartz and John Tobey for patches. COPYRIGHT Copyright (c) 2002 Tim Bunce Ireland. See COPYRIGHT section in DBI.pm for usage and distribution rights.

perl v5.8.8 2006-08-06 DBI::PurePerl(3)




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™