From: ivan Date: Wed, 11 Apr 2007 23:40:26 +0000 (+0000) Subject: defined &$class is not how you detect if a class has been loaded (just using use... X-Git-Tag: BUSINESS_ONLINEPAYMENT_3_00_08~3 X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-OnlinePayment.git;a=commitdiff_plain;h=67896eea0d47039f701916f07049dc72ab541920 defined &$class is not how you detect if a class has been loaded (just using use should be fine) --- diff --git a/Changes b/Changes index ffe12f5..57af63c 100644 --- a/Changes +++ b/Changes @@ -2,6 +2,8 @@ Revision history for Perl extension Business::OnlinePayment. 3.00_08 unreleased - B:OP:HTTPS: set response_page, response_code, response_headers + - B:OP: defined &$class is not how you detect if a class has been loaded + (just using use should be fine). Closes: CPAN#22071 3.00_07 Fri Mar 23 14:54:57 PDT 2007 - B:OP:HTTPS request headers now work with Crypt::SSLeay too. diff --git a/OnlinePayment.pm b/OnlinePayment.pm index 2dc51db..632c822 100644 --- a/OnlinePayment.pm +++ b/OnlinePayment.pm @@ -32,13 +32,11 @@ my %fields = ( sub new { my($class,$processor,%data) = @_; - Carp::croak("unspecified processor") unless $processor; + croak("unspecified processor") unless $processor; my $subclass = "${class}::$processor"; - if(!defined(&$subclass)) { - eval "use $subclass"; - Carp::croak("unknown processor $processor ($@)") if $@; - } + eval "use $subclass"; + croak("unknown processor $processor ($@)") if $@; my $self = bless {processor => $processor}, $subclass; $self->build_subs(keys %fields); @@ -104,23 +102,21 @@ sub _pre_submit { # Search for an appropriate FD module foreach my $fraud_class ( @Fraud_Class_Path ) { my $subclass = $fraud_class . "::" . $fraud_detection; - if (!defined(&$subclass)) { - eval "use $subclass ()"; - if ($@) { - Carp::croak("error loading fraud_detection module ($@)") - unless ( $@ =~ m/^Can\'t locate/ ); - } else { - my $risk_tx = bless ( { processor => $fraud_detection } , $subclass ); - $risk_tx->build_subs(keys %fields); - if ($risk_tx->can('set_defaults')) { - $risk_tx->set_defaults(); - } - $risk_tx->_glean_parameters_from_parent($self); - return $self->_risk_detect($risk_tx); - } + eval "use $subclass ()"; + if ($@) { + croak("error loading fraud_detection module ($@)") + unless ( $@ =~ m/^Can\'t locate/ ); + } else { + my $risk_tx = bless( { processor => $fraud_detection }, $subclass ); + $risk_tx->build_subs(keys %fields); + if ($risk_tx->can('set_defaults')) { + $risk_tx->set_defaults(); + } + $risk_tx->_glean_parameters_from_parent($self); + return $self->_risk_detect($risk_tx); } } - Carp::croak("Unable to locate fraud_detection module $fraud_detection" + croak("Unable to locate fraud_detection module $fraud_detection" . " in \@INC under Fraud_Class_Path (\@Fraud_Class_Path" . " contains: @Fraud_Class_Path) (\@INC contains: @INC)"); } @@ -144,7 +140,7 @@ sub required_fields { push(@missing, $_) unless exists $content{$_}; } - Carp::croak("missing required field(s): " . join(", ", @missing) . "\n") + croak("missing required field(s): " . join(", ", @missing) . "\n") if(@missing); } @@ -172,7 +168,7 @@ sub remap_fields { sub submit { my($self) = @_; - Carp::croak("Processor subclass did not override submit function"); + croak("Processor subclass did not override submit function"); } sub dump_contents {