X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FBase.pm;fp=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FBase.pm;h=45c66e9064f670fae199a1fd14731da15d3d3e9e;hb=fa1c4dc2daa12d97025beafdaf9dd576edcabc52;hp=c6b89dd2d92da12d2e8d7558be30dcf989346f10;hpb=6ac18b875b311d98ac3027529d135d3cf249bba2;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/Base.pm b/lib/DBIx/Class/Schema/Loader/Base.pm index c6b89dd..45c66e9 100644 --- a/lib/DBIx/Class/Schema/Loader/Base.pm +++ b/lib/DBIx/Class/Schema/Loader/Base.pm @@ -299,10 +299,10 @@ sub _load_external { my $real_inc_path = Cwd::abs_path($inc_path); return if $real_inc_path eq $real_dump_path; - $class->require; - croak "Failed to load external class definition" - . " for '$class': $@" - if $@; + # must use $UNIVERSAL::require::ERROR, $@ is not safe. See RT #44444 --kane + $class->require or + croak "Failed to load external class definition" + . " for '$class': $UNIVERSAL::require::ERROR"; # If we make it to here, we loaded an external definition warn qq/# Loaded external class definition for '$class'\n/ @@ -584,7 +584,7 @@ sub _use { foreach (@_) { warn "$target: use $_;" if $self->debug; $self->_raw_stmt($target, "use $_;"); - $_->require or croak ($_ . "->require: $@"); + $_->require or croak ($_ . "->require: $UNIVERSAL::require::ERROR"); $evalstr .= "package $target; use $_;"; } eval $evalstr if $evalstr; @@ -600,7 +600,7 @@ sub _inject { warn "$target: use base qw/ $blist /;" if $self->debug && @_; $self->_raw_stmt($target, "use base qw/ $blist /;") if @_; foreach (@_) { - $_->require or croak ($_ . "->require: $@"); + $_->require or croak ($_ . "->require: $UNIVERSAL::require::ERROR"); $schema_class->inject_base($target, $_); } }