Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.105
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
perl-Sub-Exporter /
t /
Delete
Unzip
Name
Size
Permission
Date
Action
lib
[ DIR ]
drwxr-xr-x
2025-02-25 04:07
00-compile.t
987
B
-rw-r--r--
2013-10-18 15:10
000-report-versions-tiny.t
2.56
KB
-rw-r--r--
2013-10-18 15:10
col-init.t
1.13
KB
-rw-r--r--
2022-02-11 18:11
collection.t
2.83
KB
-rw-r--r--
2022-02-11 18:11
expand-group.t
5.27
KB
-rw-r--r--
2022-02-11 18:11
faux-export.t
2.97
KB
-rw-r--r--
2022-02-11 18:11
gen-callable.t
574
B
-rw-r--r--
2022-02-11 18:11
group-generator.t
3.69
KB
-rw-r--r--
2022-02-11 18:11
inherited.t
613
B
-rw-r--r--
2022-02-11 18:11
into-level.t
3.06
KB
-rw-r--r--
2022-02-11 18:11
real-export-groupgen.t
1.86
KB
-rw-r--r--
2022-02-11 18:11
real-export-href.t
4.12
KB
-rw-r--r--
2022-02-11 18:11
real-export-setup.t
3.6
KB
-rw-r--r--
2022-02-11 18:11
util-curry.t
1.69
KB
-rw-r--r--
2022-02-11 18:11
util-currychain.t
1.68
KB
-rw-r--r--
2022-02-11 18:11
util-like.t
3.03
KB
-rw-r--r--
2022-02-11 18:11
util-merge.t
1.71
KB
-rw-r--r--
2022-02-11 18:11
util-mixin.t
2.73
KB
-rw-r--r--
2022-02-11 18:11
util-namemap.t
568
B
-rw-r--r--
2022-02-11 18:11
valid-config.t
1.27
KB
-rw-r--r--
2022-02-11 18:11
Save
Rename
#!/usr/bin/perl -T use strict; use warnings; use Test::More; BEGIN { if (eval { require Package::Generator; 1; }) { plan 'no_plan'; } else { plan skip_all => "the mixin exporter requires Package::Generator"; } } BEGIN { use_ok("Sub::Exporter"); } BEGIN { package Thing; use Sub::Exporter -setup => { exports => { bar => sub { sub { 1 } }, foo => sub { my ($c, $n, $a) = @_; sub { return $c . ($a->{arg}) } } }, }; } BEGIN { package Thing::Mixin; BEGIN { main::use_ok("Sub::Exporter::Util", 'mixin_installer'); } use Sub::Exporter -setup => { installer => mixin_installer, exports => { bar => sub { sub { 1 } }, foo => sub { my ($c, $n, $a) = @_; sub { return $c . ($a->{arg}) } } }, }; } package Test::SubExporter::MIXIN::0; BEGIN { Thing->import( { installer => Sub::Exporter::Util::mixin_installer }, -all => { arg => '0' }, ); } package Test::SubExporter::MIXIN::1; BEGIN { Thing->import( { installer => Sub::Exporter::Util::mixin_installer }, -all => { arg => '1' }, ); } package Test::SubExporter::MIXIN::2; BEGIN { Thing::Mixin->import( -all => { arg => '2' }, ); } package Test::SubExporter::MIXIN::3; BEGIN { Thing::Mixin->import( -all => { arg => '3' }, ); } package main; my @pkg = map { "Test::SubExporter::MIXIN::$_" } (0 .. 3); for (0 .. $#pkg) { my $ext = $_ > 1 ? '::Mixin' : ''; my $val = eval { $pkg[$_]->foo } || ($@ ? "died: $@" : undef); is( $val, "Thing$ext$_", "mixed in method in $pkg[$_] returns correctly" ); is($pkg[$_]->bar, 1, "bar method for $pkg[$_] is ok, too"); } my @super = map {; no strict 'refs'; [ @{$_ . "::ISA"} ] } @pkg; for my $x (0 .. $#pkg) { is(@{$super[$x]}, 1, "one parent for $pkg[$x]: @{$super[$x]}"); for my $y (($x + 1) .. $#pkg) { isnt("@{$super[$x]}", "@{$super[$y]}", "parent($x) ne parent($y)") } } { package Test::SubExporter::OBJECT; sub new { bless {} => shift } sub plugh { "plugh" } } package main; my $obj_1 = Test::SubExporter::OBJECT->new; isa_ok($obj_1, "Test::SubExporter::OBJECT", "first object"); is(ref $obj_1, "Test::SubExporter::OBJECT", "first object's ref is TSEO"); my $obj_2 = Test::SubExporter::OBJECT->new; isa_ok($obj_2, "Test::SubExporter::OBJECT", "second object"); is(ref $obj_2, "Test::SubExporter::OBJECT", "second object's ref is TSEO"); Thing::Mixin->import({ into => $obj_1 }, qw(bar)); pass("mixin-exporting to an object didn't die"); is( eval { $obj_1->bar }, 1, "now that object has a bar method" ); isa_ok($obj_1, "Test::SubExporter::OBJECT"); isnt(ref $obj_1, "Test::SubExporter::OBJECT", "but its actual class isnt TSEO");