X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI.pm;fp=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI.pm;h=747e45d1904d522f07c2a77cabed3ccc1765c5c8;hb=fa1c4dc2daa12d97025beafdaf9dd576edcabc52;hp=5c90f6fa7c386a40d8d53b081717ae9a3051608f;hpb=6ac18b875b311d98ac3027529d135d3cf249bba2;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI.pm b/lib/DBIx/Class/Schema/Loader/DBI.pm index 5c90f6f..747e45d 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI.pm @@ -40,8 +40,12 @@ sub new { my $dbh = $self->schema->storage->dbh; my $driver = $dbh->{Driver}->{Name}; my $subclass = 'DBIx::Class::Schema::Loader::DBI::' . $driver; + + # must use $UNIVERSAL::require::ERROR, $@ is not safe. See RT #44444 --kane $subclass->require; - if($@ && $@ !~ /^Can't locate /) { + if($UNIVERSAL::require::ERROR && + $UNIVERSAL::require::ERROR !~ /^Can't locate / + ) { croak "Failed to require $subclass: $@"; } elsif(!$@) {