Unix/Linux Go Back    

RedHat 9 (Linux i386) - man page for dbi::pureperl (redhat section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

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

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

	use DBI;

       This is a pure perl emulation of the DBI internals.  In almost all cases you will be bet-
       ter 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.

       DBI::PurePerl is very new so please treat it as experimental pending more extensive test-
       ing.  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 <jeff@vpservices.com> with a cc
       to <dbi-dev@perl.org>.

       The usage is the same as for standard DBI with the exception that you need to set the env-
       iornment variable DBI_PUREPERL if you want to use the PurePerl version.

	DBI_PUREPERL == 0 (the default) Always use compiled DBI, die
			  if it isn't properly compiled & installed

	DBI_PUREPERL == 1 Use compiled DBI if it is properly compiled
			  & installed, otherwise use PurePerl

	DBI_PUREPERL == 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:


       before you "use DBI;".

       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:

	  $ENV{DBI_PUREPERL} = 1;      # or =2
	  unshift @INC, '/usr/jdoe/mylibs';

       (Or should we perhaps patch Makefile.PL so that if DBI_PUREPERL is set to 2 prior to make,
       the normal compile process is skipped and the files are installed automatically?)


       Boolean attributes still return boolean values but the actual values used may be differ-
       ent, i.e., 0 or undef instead of an empty string.

       Some handle attributes are either not supported or have very limited functionality:


       (and probably others)


       Trace functionality is more limited and the code to handle tracing is only embeded into
       DBI:PurePerl if the DBI_TRACE environment variable is defined.  To enable total tracing
       you can set the DBI_TRACE environment variable as usual.  But to enable individual handle
       tracing using the trace() method you also need to set the DBI_TRACE environment variable,
       but set it to 0.

       Parameter Usage Checking

       The DBI does some basic parameter count checking on method calls.  DBI::PurePerl doesn't.


       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 bench-
       mark that just does:

	   my $null_dbh = DBI->connect('dbi:NullP:','','');
	   my $i = 10_000;
	   $null_dbh->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).

       May not fully support 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).

       Doesn't support preparse()

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

       Doesn't support DBD::Proxy

       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.

       Undoubtedly Others

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

       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 (c) 2002  Tim Bunce  Ireland.

       See COPYRIGHT section in DBI.pm for usage and distribution rights.

perl v5.8.0				    2002-11-29				 DBI::PurePerl(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 02:10 AM.