Config-DBI
view release on metacpan or search on metacpan
lib/Config/DBI.pm view on Meta::CPAN
if ($block->Pass eq $stdin)
{
# Prevents input from being echoed to screen
ReadMode 2;
print "Enter Password for $label (will not be echoed to screen): ";
$Pass = <STDIN>;
if ($Pass) {
chomp($Pass)
}# else {
# undef $Pass
#}
print "\n";
# Allows input to be directed to the screen again
ReadMode 0;
}
else
{
$Pass = $block->Pass
}
my %R =
(
User => $block->User,
Pass => $Pass,
DSN => $block->DSN,
Attr => \%A
);
}
use vars qw($AUTOLOAD);
sub AUTOLOAD {
my $self = shift;
my ($label) = ($AUTOLOAD =~ /([^:]+)$/) ;
my %c = Config::DBI->hash($label);
DBI->connect($c{DSN}, $c{User}, $c{Pass}, $c{Attr})
or die $DBI::errstr;
}
1;
__END__
# Below is stub documentation for your module. You'd better edit it!
=head1 NAME
Config::DBI - database connection support via Config::ApacheFormat files
=head1 SYNOPSIS
In .cshrc:
setenv DBI_CONF dbi.conf
In dbi.conf:
# Pass may be a password, or <STDIN> in which case, the password is
# is prompted for:
Pass <STDIN>
# Connect attribute
# dbi_connect_method is a standard part of DBI. Its casing does differ from
# all other attributes, but I did not create the DBI spec, I am simply
# following it:
# http://search.cpan.org/~timb/DBI-1.38/DBI.pm#DBI_Class_Methods
# Other options for this value are: connect_cached, Apache::DBI::connect
dbi_connect_method connect
# Attributes common to all handles and settable
# Listed in the order given in the DBI docs.
# http://search.cpan.org/~timb/DBI/DBI.pm#METHODS_COMMON_TO_ALL_HANDLES
Warn 1
InactiveDestroy
PrintError 0
PrintWarn 1
RaiseError 0
HandleError Exception::Class::DBI->handler
HandleSetErr sub { my ($handle, $err, $errstr, $state, $method) = @_; }
ShowErrorStatement 1
TraceLevel 0
FetchHashKeyName NAME_lc
ChopBlanks 0
LongReadLen 0
LongTruncOk 0
TaintIn 1
TaintOut 0
# omit Taint (shortcut to set both TaintIn and TaintOut)
Profile 0
# Attributes for database handles
# http://search.cpan.org/~timb/DBI/DBI.pm#Database_Handle_Attributes
AutoCommit 0
RowCacheSize 0
# Connection info
# Description of a database we would like to connect to
<DBI basic>
DSN dbi:Pg:dbname=mydb
User postgres
AutoCommit 1
</DBI>
# Description of another database
<DBI basic_test>
( run in 1.187 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )