Exporter
view release on metacpan or search on metacpan
t/Exporter.t view on Meta::CPAN
#!perl -w
use strict;
use warnings;
# Can't use Test::Simple/More, they depend on Exporter.
my $test;
sub ok ($;$) {
my($ok, $name) = @_;
# You have to do it this way or VMS will get confused.
printf "%sok %d%s\n", ($ok ? '' : 'not '), $test,
(defined $name ? " - $name" : '');
printf "# Failed test at line %d\n", (caller)[2] unless $ok;
$test++;
return $ok;
}
BEGIN {
$test = 1;
print "1..34\n";
require Exporter;
ok( 1, 'Exporter compiled' );
}
our @Exporter_Methods = qw(import
export_to_level
require_version
export_fail
);
package Testing;
require Exporter;
our @ISA = qw(Exporter);
# Make sure Testing can do everything its supposed to.
foreach my $meth (@::Exporter_Methods) {
::ok( Testing->can($meth), "subclass can $meth()" );
}
our %EXPORT_TAGS = (
This => [qw(stuff %left)],
That => [qw(Above the @wailing)],
tray => [qw(Fasten $seatbelt)],
);
our @EXPORT = qw(lifejacket is);
our @EXPORT_OK = qw(under &your $seat);
our $VERSION = '1.05';
::ok( Testing->require_version(1.05), 'require_version()' );
eval { Testing->require_version(1.11); 1 };
::ok( $@, 'require_version() fail' );
::ok( Testing->require_version(0), 'require_version(0)' );
sub lifejacket { 'lifejacket' }
sub stuff { 'stuff' }
sub Above { 'Above' }
sub the { 'the' }
sub Fasten { 'Fasten' }
sub your { 'your' }
sub under { 'under' }
use vars qw($seatbelt $seat @wailing %left);
$seatbelt = 'seatbelt';
$seat = 'seat';
@wailing = qw(AHHHHHH);
%left = ( left => "right" );
BEGIN {*is = \&Is};
sub Is { 'Is' };
( run in 1.428 second using v1.01-cache-2.11-cpan-800906f7e73 )