| Server IP : 172.67.156.203 / Your IP : 216.73.216.44 Web Server : Apache System : Linux gator4057.hostgator.com 5.14.0-687.17.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jun 22 07:21:26 EDT 2026 x86_64 User : badawi ( 1130) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/perl-Class-Method-Modifiers/t/ |
Upload File : |
use strict;
use warnings;
use Test::More 0.88;
use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';
my @seen;
my @expected = qw/ before
around-before
orig
around-after
after /;
my $child = Child->new();
$child->orig();
is_deeply(\@seen, \@expected, "multiple modifiers in one class");
@seen = ();
@expected = qw/ beforer around-beforer
before around-before
orig
around-after after
around-afterer afterer /;
my $childer = Childer->new();
$childer->orig();
is_deeply(\@seen, \@expected, "multiple modifiers subclassed with multiple modifiers");
BEGIN
{
package MyParent;
sub new { bless {}, shift }
sub orig
{
push @seen, 'orig';
}
}
BEGIN
{
package Child;
our @ISA = 'MyParent';
use Class::Method::Modifiers;
after 'orig' => sub
{
push @seen, 'after';
};
around 'orig' => sub
{
my $orig = shift;
push @seen, 'around-before';
$orig->();
push @seen, 'around-after';
};
before 'orig' => sub
{
push @seen, 'before';
};
}
BEGIN
{
package Childer;
our @ISA = 'Child';
use Class::Method::Modifiers;
after 'orig' => sub
{
push @seen, 'afterer';
};
around 'orig' => sub
{
my $orig = shift;
push @seen, 'around-beforer';
$orig->();
push @seen, 'around-afterer';
};
before 'orig' => sub
{
push @seen, 'beforer';
};
}
done_testing;