X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSub%2FExporter%2FProgressive.pm;h=be1815b70f822b46c888a6524ffd9a557eae0ec6;hb=113a844be22f287481afa1fcde48cf09c5a85922;hp=0e8d0421a356f14c2a5e680de29927a629bfeed5;hpb=0a1657e9562a20062806d75ff0de7dd7b570aa48;p=p5sagit%2FSub-Exporter-Progressive.git diff --git a/lib/Sub/Exporter/Progressive.pm b/lib/Sub/Exporter/Progressive.pm index 0e8d042..be1815b 100644 --- a/lib/Sub/Exporter/Progressive.pm +++ b/lib/Sub/Exporter/Progressive.pm @@ -15,37 +15,32 @@ sub import { my $inner_target = caller(0); my ($TOO_COMPLICATED, $export_data) = sub_export_options(@args); - if ($TOO_COMPLICATED) { - warn <<'WARNING'; + die <<'DEATH' if $TOO_COMPLICATED; You are using Sub::Exporter::Progressive, but the features your program uses from Sub::Exporter cannot be implemented without Sub::Exporter, so you might as well just use vanilla Sub::Exporter -WARNING - require Sub::Exporter; - goto \&Sub::Exporter::import; - } - else { - my $full_exporter; - no strict; - @{"${inner_target}::EXPORT_OK"} = @{$export_data->{exports}}; - @{"${inner_target}::EXPORT"} = @{$export_data->{defaults}}; - *{"${inner_target}::import"} = sub { - use strict; - my ($self, @args) = @_; - - if (first { ref || !m/^\w+$/ } @args) { - die 'your usage of Sub::Exporter::Progressive requires Sub::Exporter to be installed' - unless eval { require Sub::Exporter }; - $full_exporter ||= - Sub::Exporter::build_exporter($export_data->{original}); - - goto $full_exporter; - } else { - require Exporter; - goto \&Exporter::import; - } - }; - } +DEATH + + my $full_exporter; + no strict; + @{"${inner_target}::EXPORT_OK"} = @{$export_data->{exports}}; + @{"${inner_target}::EXPORT"} = @{$export_data->{defaults}}; + *{"${inner_target}::import"} = sub { + use strict; + my ($self, @args) = @_; + + if (first { ref || !m/^\w+$/ } @args) { + die 'your usage of Sub::Exporter::Progressive requires Sub::Exporter to be installed' + unless eval { require Sub::Exporter }; + $full_exporter ||= + Sub::Exporter::build_exporter($export_data->{original}); + + goto $full_exporter; + } else { + require Exporter; + goto \&Exporter::import; + } + }; } sub sub_export_options {