403Webshell
Server IP : 172.67.156.203  /  Your IP : 216.73.216.72
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/doc/perl-Class-Method-Modifiers/t/081-sub-and-modifier.t
use strict;
use warnings;
use Test::More 0.88;
use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';

my @seen;
my $class = MyParent->new();
$class->orig("hi");
is(@seen, 5);
is($seen[0], "before-orig:hi");
is($seen[1], "around-before-orig:hi");
is($seen[2], "orig:hi");
is($seen[3], "around-after-orig:hi");
is($seen[4], "after-orig:hi");

@seen = ();

$class = Child->new();
$class->orig("yo");
is(@seen, 9);
is($seen[0], "Cbefore-orig:yo");
is($seen[1], "Caround-before-orig:yo");
is($seen[2], "before-orig:yo");
is($seen[3], "around-before-orig:yo");
is($seen[4], "orig:yo");
is($seen[5], "around-after-orig:yo");
is($seen[6], "after-orig:yo");
is($seen[7], "Caround-after-orig:yo");
is($seen[8], "Cafter-orig:yo");

@seen = ();

$class = Childer->new();
$class->orig("oy");
is(@seen, 5);
is($seen[0], "CCbefore-orig:oy");
is($seen[1], "CCaround-before-orig:oy");
is($seen[2], "CCorig:oy");
is($seen[3], "CCaround-after-orig:oy");
is($seen[4], "CCafter-orig:oy");

@seen = ();

$class = MyParent2->new();
$class->orig("bye");
is(@seen, 5);
is($seen[0], "before-orig:bye");
is($seen[1], "around-before-orig:bye");
is($seen[2], "orig:bye");
is($seen[3], "around-after-orig:bye");
is($seen[4], "after-orig:bye");

BEGIN
{
    package MyParent;
    use Class::Method::Modifiers;

    sub new { bless {}, shift }

    sub orig
    {
        push @seen, "orig:$_[1]";
    }

    before 'orig' => sub
    {
        push @seen, "before-orig:$_[1]";
    };

    around 'orig' => sub
    {
        my $orig = shift;
        push @seen, "around-before-orig:$_[1]";
        $orig->(@_);
        push @seen, "around-after-orig:$_[1]";
    };

    after 'orig' => sub
    {
        push @seen, "after-orig:$_[1]";
    };
}

BEGIN
{
    package Child;
    our @ISA = 'MyParent';
    use Class::Method::Modifiers;

    before 'orig' => sub
    {
        push @seen, "Cbefore-orig:$_[1]";
    };

    around 'orig' => sub
    {
        my $orig = shift;
        push @seen, "Caround-before-orig:$_[1]";
        $orig->(@_);
        push @seen, "Caround-after-orig:$_[1]";
    };

    after 'orig' => sub
    {
        push @seen, "Cafter-orig:$_[1]";
    };
}

BEGIN
{
    package Childer;
    our @ISA = 'Child';
    use Class::Method::Modifiers;

    sub orig
    {
        push @seen, "CCorig:$_[1]";
    }

    before 'orig' => sub
    {
        push @seen, "CCbefore-orig:$_[1]";
    };

    around 'orig' => sub
    {
        my $orig = shift;
        push @seen, "CCaround-before-orig:$_[1]";
        $orig->(@_);
        push @seen, "CCaround-after-orig:$_[1]";
    };

    after 'orig' => sub
    {
        push @seen, "CCafter-orig:$_[1]";
    };
}
BEGIN
{
    package MyParent2;
    use Class::Method::Modifiers;

    sub new { bless {}, shift }

    around 'orig' => sub
    {
        my $orig = shift;
        push @seen, "around-before-orig:$_[1]";
        $orig->(@_);
        push @seen, "around-after-orig:$_[1]";
    };

    before 'orig' => sub
    {
        push @seen, "before-orig:$_[1]";
    };

    after 'orig' => sub
    {
        push @seen, "after-orig:$_[1]";
    };

    sub orig
    {
        push @seen, "orig:$_[1]";
    }
}

done_testing;

Youez - 2016 - github.com/yon3zu
LinuXploit