Linux cpanel2.daytoncreative.net 2.6.32-754.29.2.el6.x86_64 #1 SMP Tue May 12 17:39:04 UTC 2020 x86_64
Apache/2.4.43 (cPanel) OpenSSL/1.1.1g mod_bwlimited/1.4
Server IP : 70.62.220.67 & Your IP : 216.73.216.193
Domains :
Cant Read [ /etc/named.conf ]
User : michaelgreg
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
log /
perl-5.20.2 /
t /
op /
Delete
Unzip
Name
Size
Permission
Date
Action
64bitint.t
8.14
KB
-r--r--r--
2014-12-27 11:49
alarm.t
1.5
KB
-r--r--r--
2014-12-27 11:49
anonsub.t
1.7
KB
-r--r--r--
2014-12-27 11:49
append.t
1.58
KB
-r--r--r--
2014-12-27 11:49
args.t
2.12
KB
-r--r--r--
2014-12-27 11:49
array.t
12.32
KB
-r--r--r--
2014-12-27 11:49
array_base.t
720
B
-r--r--r--
2014-12-27 11:49
assignwarn.t
1.52
KB
-r--r--r--
2014-12-27 11:49
attrhand.t
1.01
KB
-r--r--r--
2014-12-27 11:49
attrproto.t
6.55
KB
-r--r--r--
2014-12-27 11:49
attrs.t
10.73
KB
-r--r--r--
2014-12-27 11:49
auto.t
2.36
KB
-r--r--r--
2014-12-27 11:49
avhv.t
4.04
KB
-r--r--r--
2014-12-27 11:49
bless.t
4.12
KB
-r--r--r--
2014-12-27 11:49
blocks.t
2.95
KB
-r--r--r--
2014-12-27 11:49
bop.t
12.82
KB
-r--r--r--
2014-12-27 11:49
caller.pl
3.75
KB
-r--r--r--
2014-12-27 11:49
caller.t
8.14
KB
-r--r--r--
2014-12-27 11:49
chars.t
1.73
KB
-r--r--r--
2014-12-27 11:49
chdir.t
6.68
KB
-r--r--r--
2014-12-27 11:49
chop.t
7.67
KB
-r--r--r--
2014-12-27 11:49
chr.t
2.48
KB
-r--r--r--
2014-12-27 11:49
closure.t
19.6
KB
-r--r--r--
2014-12-27 11:49
closure_test.pl
327
B
-r--r--r--
2014-12-27 11:49
concat2.t
1.41
KB
-r--r--r--
2014-12-27 11:49
cond.t
282
B
-r--r--r--
2014-12-27 11:49
context.t
404
B
-r--r--r--
2014-12-27 11:49
coreamp.t
29.17
KB
-r--r--r--
2014-12-27 11:49
coresubs.t
4.87
KB
-r--r--r--
2014-12-27 11:49
cproto.t
3.6
KB
-r--r--r--
2014-12-27 11:49
crypt.t
1.17
KB
-r--r--r--
2014-12-27 11:49
current_sub.t
1.71
KB
-r--r--r--
2014-12-27 11:49
dbm.t
1.54
KB
-r--r--r--
2014-12-27 11:49
defined.t
551
B
-r--r--r--
2014-12-27 11:49
defins.t
4.84
KB
-r--r--r--
2014-12-27 11:49
delete.t
2.93
KB
-r--r--r--
2014-12-27 11:49
die.t
1.99
KB
-r--r--r--
2014-12-27 11:49
die_except.t
1.57
KB
-r--r--r--
2014-12-27 11:49
die_exit.t
1.9
KB
-r--r--r--
2014-12-27 11:49
die_keeperr.t
1.57
KB
-r--r--r--
2014-12-27 11:49
die_unwind.t
1.69
KB
-r--r--r--
2014-12-27 11:49
do.t
8.35
KB
-r--r--r--
2014-12-27 11:49
dor.t
2.64
KB
-r--r--r--
2014-12-27 11:49
each.t
7.09
KB
-r--r--r--
2014-12-27 11:49
each_array.t
5.48
KB
-r--r--r--
2014-12-27 11:49
eval.t
13.92
KB
-r--r--r--
2014-12-27 11:49
evalbytes.t
989
B
-r--r--r--
2014-12-27 11:49
exec.t
4.36
KB
-r--r--r--
2014-12-27 11:49
exists_sub.t
2.09
KB
-r--r--r--
2014-12-27 11:49
exp.t
1.47
KB
-r--r--r--
2014-12-27 11:49
fh.t
790
B
-r--r--r--
2014-12-27 11:49
filehandle.t
564
B
-r--r--r--
2014-12-27 11:49
filetest.t
11.97
KB
-r--r--r--
2014-12-27 11:49
filetest_stack_ok.t
1.12
KB
-r--r--r--
2014-12-27 11:49
filetest_t.t
1.18
KB
-r--r--r--
2014-12-27 11:49
flip.t
868
B
-r--r--r--
2014-12-27 11:49
for.t
12.77
KB
-r--r--r--
2014-12-27 11:49
fork.t
8.8
KB
-r--r--r--
2014-12-27 11:49
fresh_perl_utf8.t
411
B
-r--r--r--
2014-12-27 11:49
getpid.t
1.61
KB
-r--r--r--
2014-12-27 11:49
getppid.t
3.13
KB
-r--r--r--
2014-12-27 11:49
glob.t
4.22
KB
-r--r--r--
2014-12-27 11:49
gmagic.t
5.97
KB
-r--r--r--
2014-12-27 11:49
goto.t
14.85
KB
-r--r--r--
2014-12-27 11:49
goto_xs.t
2.98
KB
-r--r--r--
2014-12-27 11:49
grent.t
4.46
KB
-r--r--r--
2014-12-27 11:49
grep.t
6.66
KB
-r--r--r--
2014-12-27 11:49
groups.t
11.15
KB
-r--r--r--
2014-12-27 11:49
gv.t
30.15
KB
-r--r--r--
2014-12-27 11:49
hash-rt85026.t
1.57
KB
-r--r--r--
2014-12-27 11:49
hash.t
6.02
KB
-r--r--r--
2014-12-27 11:49
hashassign.t
18.85
KB
-r--r--r--
2014-12-27 11:49
hashwarn.t
2.05
KB
-r--r--r--
2014-12-27 11:49
heredoc.t
2.29
KB
-r--r--r--
2014-12-27 11:49
inc.t
6.72
KB
-r--r--r--
2014-12-27 11:49
inccode-tie.t
338
B
-r--r--r--
2014-12-27 11:49
inccode.t
11.19
KB
-r--r--r--
2014-12-27 11:49
incfilter.t
7.33
KB
-r--r--r--
2014-12-27 11:49
index.t
6.81
KB
-r--r--r--
2014-12-27 11:49
index_thr.t
56
B
-r--r--r--
2014-12-27 11:49
int.t
1.72
KB
-r--r--r--
2014-12-27 11:49
join.t
3.2
KB
-r--r--r--
2014-12-27 11:49
kill0.t
3.18
KB
-r--r--r--
2014-12-27 11:49
kill0_child
596
B
-r--r--r--
2014-12-27 11:49
kvaslice.t
4.66
KB
-r--r--r--
2014-12-27 11:49
kvhslice.t
5.44
KB
-r--r--r--
2014-12-27 11:49
lc.t
11.8
KB
-r--r--r--
2014-12-27 11:49
leaky-magic.t
3.43
KB
-r--r--r--
2014-12-27 11:49
length.t
5.03
KB
-r--r--r--
2014-12-27 11:49
lex.t
2.33
KB
-r--r--r--
2014-12-27 11:49
lex_assign.t
7.17
KB
-r--r--r--
2014-12-27 11:49
lexsub.t
19.62
KB
-r--r--r--
2014-12-27 12:24
lfs.t
6.2
KB
-r--r--r--
2014-12-27 11:49
list.t
5.31
KB
-r--r--r--
2014-12-27 11:52
local.t
17.11
KB
-r--r--r--
2014-12-27 11:49
localref.t
2.73
KB
-r--r--r--
2014-12-27 11:49
lock.t
465
B
-r--r--r--
2014-12-27 11:49
loopctl.t
17.88
KB
-r--r--r--
2014-12-27 11:49
lop.t
1.2
KB
-r--r--r--
2014-12-27 11:49
magic-27839.t
622
B
-r--r--r--
2014-12-27 11:49
magic.t
21.81
KB
-r--r--r--
2014-12-27 11:49
method.t
18.91
KB
-r--r--r--
2014-12-27 11:49
mkdir.t
1.25
KB
-r--r--r--
2014-12-27 11:49
my.t
4.29
KB
-r--r--r--
2014-12-27 11:49
my_stash.t
769
B
-r--r--r--
2014-12-27 11:49
mydef.t
5.51
KB
-r--r--r--
2014-12-27 11:49
negate.t
4.3
KB
-r--r--r--
2014-12-27 11:49
not.t
3.15
KB
-r--r--r--
2014-12-27 11:49
numconvert.t
8.33
KB
-r--r--r--
2014-12-27 11:49
oct.t
3.58
KB
-r--r--r--
2014-12-27 11:49
or.t
1.79
KB
-r--r--r--
2014-12-27 11:49
ord.t
2.48
KB
-r--r--r--
2014-12-27 11:49
overload_integer.t
506
B
-r--r--r--
2014-12-27 11:49
override.t
4.33
KB
-r--r--r--
2014-12-27 11:49
pack.t
65.34
KB
-r--r--r--
2014-12-27 11:49
packagev.t
5.97
KB
-r--r--r--
2014-12-27 11:49
pos.t
3.59
KB
-r--r--r--
2014-12-27 11:49
postfixderef.t
11.97
KB
-r--r--r--
2014-12-27 11:49
pow.t
2.34
KB
-r--r--r--
2014-12-27 11:49
print.t
692
B
-r--r--r--
2014-12-27 11:49
protowarn.t
1.35
KB
-r--r--r--
2014-12-27 11:49
push.t
3.03
KB
-r--r--r--
2014-12-27 11:49
pwent.t
6.63
KB
-r--r--r--
2014-12-27 11:49
qr.t
2.32
KB
-r--r--r--
2014-12-27 11:49
quotemeta.t
5.61
KB
-r--r--r--
2014-12-27 11:49
rand.t
8.31
KB
-r--r--r--
2014-12-27 11:49
range.t
9.25
KB
-r--r--r--
2014-12-27 11:49
read.t
2.28
KB
-r--r--r--
2014-12-27 11:49
readdir.t
2.09
KB
-r--r--r--
2014-12-27 11:49
readline.t
7.19
KB
-r--r--r--
2014-12-27 11:49
recurse.t
2.73
KB
-r--r--r--
2014-12-27 11:49
ref.t
22.74
KB
-r--r--r--
2014-12-27 11:49
repeat.t
4.8
KB
-r--r--r--
2014-12-27 11:49
require_37033.t
1.18
KB
-r--r--r--
2014-12-27 11:49
require_errors.t
3.68
KB
-r--r--r--
2014-12-27 11:49
reset.t
5.41
KB
-r--r--r--
2014-12-27 11:49
reverse.t
3.01
KB
-r--r--r--
2014-12-27 11:49
rt119311.t
5.58
KB
-r--r--r--
2014-12-27 11:49
runlevel.t
5.28
KB
-r--r--r--
2014-12-27 11:49
select.t
1.03
KB
-r--r--r--
2014-12-27 11:49
setpgrpstack.t
378
B
-r--r--r--
2014-12-27 11:49
sigdispatch.t
4.33
KB
-r--r--r--
2014-12-27 11:49
signatures.t
41.02
KB
-r--r--r--
2014-12-27 11:49
sigsystem.t
1.36
KB
-r--r--r--
2014-12-27 11:49
sleep.t
468
B
-r--r--r--
2014-12-27 11:49
smartkve.t
18.26
KB
-r--r--r--
2014-12-27 11:49
smartmatch.t
10.34
KB
-r--r--r--
2014-12-27 11:49
sort.t
28.4
KB
-r--r--r--
2015-01-10 13:17
splice.t
3.38
KB
-r--r--r--
2014-12-27 11:49
split.t
13.1
KB
-r--r--r--
2014-12-27 11:49
split_unicode.t
2.4
KB
-r--r--r--
2014-12-27 11:49
sprintf.t
28.5
KB
-r--r--r--
2014-12-27 11:49
sprintf2.t
5.49
KB
-r--r--r--
2014-12-27 11:49
srand.t
1.87
KB
-r--r--r--
2014-12-27 11:49
sselect.t
2.67
KB
-r--r--r--
2014-12-27 11:49
stash.t
9.01
KB
-r--r--r--
2014-12-27 11:49
stat.t
17.51
KB
-r--r--r--
2014-12-27 11:49
state.t
9.72
KB
-r--r--r--
2014-12-27 12:15
study.t
2.99
KB
-r--r--r--
2014-12-27 11:49
studytied.t
1.29
KB
-r--r--r--
2014-12-27 11:49
sub.t
6.54
KB
-r--r--r--
2014-12-27 11:49
sub_lval.t
24.2
KB
-r--r--r--
2014-12-27 11:49
substr.t
20.53
KB
-r--r--r--
2014-12-27 11:49
substr_thr.t
56
B
-r--r--r--
2014-12-27 11:49
svleak.pl
6
B
-r--r--r--
2014-12-27 11:49
svleak.t
15.93
KB
-r--r--r--
2015-01-10 12:06
switch.t
28.06
KB
-r--r--r--
2014-12-27 11:49
symbolcache.t
1.06
KB
-r--r--r--
2014-12-27 11:49
sysio.t
5
KB
-r--r--r--
2014-12-27 11:49
taint.t
66.84
KB
-r--r--r--
2014-12-27 12:32
threads-dirh.t
3.47
KB
-r--r--r--
2014-12-27 11:49
threads.t
9.3
KB
-r--r--r--
2014-12-27 11:49
threads_create.pl
42
B
-r--r--r--
2014-12-27 11:49
tie.t
28.34
KB
-r--r--r--
2014-12-27 11:49
tie_fetch_count.t
11.49
KB
-r--r--r--
2014-12-27 11:49
tiearray.t
4.53
KB
-r--r--r--
2014-12-27 11:49
tiehandle.t
5.27
KB
-r--r--r--
2014-12-27 11:49
time.t
7.86
KB
-r--r--r--
2015-01-17 11:51
time_loop.t
378
B
-r--r--r--
2014-12-27 11:49
tr.t
12.99
KB
-r--r--r--
2014-12-27 11:49
undef.t
3.15
KB
-r--r--r--
2014-12-27 11:49
universal.t
8.32
KB
-r--r--r--
2014-12-27 11:49
unlink.t
1.02
KB
-r--r--r--
2014-12-27 11:49
unshift.t
3.17
KB
-r--r--r--
2014-12-27 11:49
upgrade.t
1.15
KB
-r--r--r--
2014-12-27 11:49
utf8cache.t
3.83
KB
-r--r--r--
2014-12-27 11:49
utf8decode.t
7.59
KB
-r--r--r--
2014-12-27 11:49
utf8magic.t
808
B
-r--r--r--
2014-12-27 11:49
utfhash.t
5.33
KB
-r--r--r--
2014-12-27 11:49
utftaint.t
4.46
KB
-r--r--r--
2014-12-27 11:49
vec.t
2.87
KB
-r--r--r--
2014-12-27 11:49
ver.t
8.39
KB
-r--r--r--
2014-12-27 11:49
waitpid.t
973
B
-r--r--r--
2014-12-27 11:49
wantarray.t
874
B
-r--r--r--
2014-12-27 11:49
warn.t
4.15
KB
-r--r--r--
2014-12-27 11:49
while.t
3.81
KB
-r--r--r--
2014-12-27 11:49
write.t
39.99
KB
-r--r--r--
2015-01-24 15:03
yadayada.t
1.67
KB
-r--r--r--
2015-01-15 22:12
Save
Rename
#!./perl -w # tests state variables BEGIN { chdir 't' if -d 't'; @INC = '../lib'; require './test.pl'; } use strict; plan tests => 137; # Before loading feature.pm, test it with CORE:: ok eval 'CORE::state $x = 1;', 'CORE::state outside of feature.pm scope'; use feature ":5.10"; ok( ! defined state $uninit, q(state vars are undef by default) ); # basic functionality sub stateful { state $x; state $y = 1; my $z = 2; state ($t) //= 3; return ($x++, $y++, $z++, $t++); } my ($x, $y, $z, $t) = stateful(); is( $x, 0, 'uninitialized state var' ); is( $y, 1, 'initialized state var' ); is( $z, 2, 'lexical' ); is( $t, 3, 'initialized state var, list syntax' ); ($x, $y, $z, $t) = stateful(); is( $x, 1, 'incremented state var' ); is( $y, 2, 'incremented state var' ); is( $z, 2, 'reinitialized lexical' ); is( $t, 4, 'incremented state var, list syntax' ); ($x, $y, $z, $t) = stateful(); is( $x, 2, 'incremented state var' ); is( $y, 3, 'incremented state var' ); is( $z, 2, 'reinitialized lexical' ); is( $t, 5, 'incremented state var, list syntax' ); # in a nested block sub nesting { state $foo = 10; my $t; { state $bar = 12; $t = ++$bar } ++$foo; return ($foo, $t); } ($x, $y) = nesting(); is( $x, 11, 'outer state var' ); is( $y, 13, 'inner state var' ); ($x, $y) = nesting(); is( $x, 12, 'outer state var' ); is( $y, 14, 'inner state var' ); # in a closure sub generator { my $outer; # we use $outer to generate a closure sub { ++$outer; ++state $x } } my $f1 = generator(); is( $f1->(), 1, 'generator 1' ); is( $f1->(), 2, 'generator 1' ); my $f2 = generator(); is( $f2->(), 1, 'generator 2' ); is( $f1->(), 3, 'generator 1 again' ); is( $f2->(), 2, 'generator 2 once more' ); # with ties { package countfetches; our $fetchcount = 0; sub TIESCALAR {bless {}}; sub FETCH { ++$fetchcount; 18 }; tie my $y, "countfetches"; sub foo { state $x = $y; $x++ } ::is( foo(), 18, "initialisation with tied variable" ); ::is( foo(), 19, "increments correctly" ); ::is( foo(), 20, "increments correctly, twice" ); ::is( $fetchcount, 1, "fetch only called once" ); } # state variables are shared among closures sub gen_cashier { my $amount = shift; state $cash_in_store = 0; return { add => sub { $cash_in_store += $amount }, del => sub { $cash_in_store -= $amount }, bal => sub { $cash_in_store }, }; } gen_cashier(59)->{add}->(); gen_cashier(17)->{del}->(); is( gen_cashier()->{bal}->(), 42, '$42 in my drawer' ); # stateless assignment to a state variable sub stateless { state $reinitme = 42; ++$reinitme; } is( stateless(), 43, 'stateless function, first time' ); is( stateless(), 44, 'stateless function, second time' ); # array state vars sub stateful_array { state @x; push @x, 'x'; return $#x; } my $xsize = stateful_array(); is( $xsize, 0, 'uninitialized state array' ); $xsize = stateful_array(); is( $xsize, 1, 'uninitialized state array after one iteration' ); # hash state vars sub stateful_hash { state %hx; return $hx{foo}++; } my $xhval = stateful_hash(); is( $xhval, 0, 'uninitialized state hash' ); $xhval = stateful_hash(); is( $xhval, 1, 'uninitialized state hash after one iteration' ); # Recursion sub noseworth { my $level = shift; state $recursed_state = 123; is($recursed_state, 123, "state kept through recursion ($level)"); noseworth($level - 1) if $level; } noseworth(2); # Assignment return value sub pugnax { my $x = state $y = 42; $y++; $x; } is( pugnax(), 42, 'scalar state assignment return value' ); is( pugnax(), 43, 'scalar state assignment return value' ); # # Test various blocks. # foreach my $x (1 .. 3) { state $y = $x; is ($y, 1, "foreach $x"); } for (my $x = 1; $x < 4; $x ++) { state $y = $x; is ($y, 1, "for $x"); } while ($x < 4) { state $y = $x; is ($y, 1, "while $x"); $x ++; } $x = 1; until ($x >= 4) { state $y = $x; is ($y, 1, "until $x"); $x ++; } $x = 0; $y = 0; { state $z = $x; $z ++; $y ++; is ($z, $y, "bare block $y"); redo if $y < 3 } # # Check state $_ # my @stones = qw [fred wilma barny betty]; my $first = $stones [0]; my $First = ucfirst $first; $_ = "bambam"; foreach my $flint (@stones) { no warnings 'experimental::lexical_topic'; state $_ = $flint; is $_, $first, 'state $_'; ok /$first/, '/.../ binds to $_'; is ucfirst, $First, '$_ default argument'; } is $_, "bambam", '$_ is still there'; # # Goto. # my @simpsons = qw [Homer Marge Bart Lisa Maggie]; again: my $next = shift @simpsons; state $simpson = $next; is $simpson, 'Homer', 'goto 1'; goto again if @simpsons; my $vi; { goto Elvis unless $vi; state $calvin = ++ $vi; Elvis: state $vile = ++ $vi; redo unless defined $calvin; is $calvin, 2, "goto 2"; is $vile, 1, "goto 3"; is $vi, 2, "goto 4"; } my @presidents = qw [Taylor Garfield Ford Arthur Monroe]; sub president { my $next = shift @presidents; state $president = $next; goto &president if @presidents; $president; } my $president_answer = $presidents [0]; is president, $president_answer, '&goto'; my @flowers = qw [Bluebonnet Goldenrod Hawthorn Peony]; foreach my $f (@flowers) { goto state $flower = $f; ok 0, 'computed goto 0'; next; Bluebonnet: ok 1, 'computed goto 1'; next; Goldenrod: ok 0, 'computed goto 2'; next; Hawthorn: ok 0, 'computed goto 3'; next; Peony: ok 0, 'computed goto 4'; next; ok 0, 'computed goto 5'; next; } # # map/grep # my @apollo = qw [Eagle Antares Odyssey Aquarius]; my @result1 = map {state $x = $_;} @apollo; my @result2 = grep {state $x = /Eagle/} @apollo; { local $" = ""; is "@result1", $apollo [0] x @apollo, "map"; is "@result2", "@apollo", "grep"; } # # Reference to state variable. # sub reference {\state $x} my $ref1 = reference; my $ref2 = reference; is $ref1, $ref2, "Reference to state variable"; # # Pre/post increment. # foreach my $x (1 .. 3) { ++ state $y; state $z ++; is $y, $x, "state pre increment"; is $z, $x, "state post increment"; } # # Substr # my $tintin = "Tin-Tin"; my @thunderbirds = qw [Scott Virgel Alan Gordon John]; my @thunderbirds2 = qw [xcott xxott xxxtt xxxxt xxxxx]; foreach my $x (0 .. 4) { state $c = \substr $tintin, $x, 1; my $d = \substr ((state $tb = $thunderbirds [$x]), $x, 1); $$c = "x"; $$d = "x"; is $tintin, "xin-Tin", "substr"; is $tb, $thunderbirds2 [$x], "substr"; } # # Use with given. # my @spam = qw [spam ham bacon beans]; foreach my $spam (@spam) { no warnings 'experimental::smartmatch'; given (state $spam = $spam) { when ($spam [0]) {ok 1, "given"} default {ok 0, "given"} } } # # Redefine. # { state $x = "one"; no warnings; state $x = "two"; is $x, "two", "masked" } # normally closureless anon subs share a CV and pad. If the anon sub has a # state var, this would mean that it is shared. Check that this doesn't # happen { my @f; push @f, sub { state $x; ++$x } for 1..2; $f[0]->() for 1..10; is $f[0]->(), 11; is $f[1]->(), 1; } # each copy of an anon sub should get its own 'once block' { my $x; # used to force a closure my @f; push @f, sub { $x=0; state $s = $_[0]; $s } for 1..2; is $f[0]->(1), 1; is $f[0]->(2), 1; is $f[1]->(3), 3; is $f[1]->(4), 3; } foreach my $forbidden (<DATA>) { chomp $forbidden; no strict 'vars'; eval $forbidden; like $@, qr/Initialization of state variables in list context currently forbidden/, "Currently forbidden: $forbidden"; } # [perl #49522] state variable not available { my @warnings; local $SIG{__WARN__} = sub { push @warnings, $_[0] }; eval q{ use warnings; sub f_49522 { state $s = 88; sub g_49522 { $s } sub { $s }; } sub h_49522 { state $t = 99; sub i_49522 { sub { $t }; } } }; is $@, '', "eval f_49522"; # shouldn't be any 'not available' or 'not stay shared' warnings ok !@warnings, "suppress warnings part 1 [@warnings]"; @warnings = (); my $f = f_49522(); is $f->(), 88, "state var closure 1"; is g_49522(), 88, "state var closure 2"; ok !@warnings, "suppress warnings part 2 [@warnings]"; @warnings = (); $f = i_49522(); h_49522(); # initialise $t is $f->(), 99, "state var closure 3"; ok !@warnings, "suppress warnings part 3 [@warnings]"; } # [perl #117095] state var initialisation getting skipped # the 'if 0' code below causes a call to op_free at compile-time, # which used to inadvertently mark the state var as initialised. { state $f = 1; foo($f) if 0; # this calls op_free on padmy($f) ok(defined $f, 'state init not skipped'); } # [perl #121134] Make sure padrange doesn't mess with these { sub thing { my $expect = shift; my ($x, $y); state $z; is($z, $expect, "State variable is correct"); $z = 5; } thing(undef); thing(5); sub thing2 { my $expect = shift; my $x; my $y; state $z; is($z, $expect, "State variable is correct"); $z = 6; } thing2(undef); thing2(6); } # [perl #123029] regression in "state" under PERL_NO_COW sub rt_123029 { state $s; $s = 'foo'x500; my $c = $s; return defined $s; } ok(rt_123029(), "state variables don't surprisingly disappear when accessed"); __DATA__ state ($a) = 1; (state $a) = 1; state @a = 1; state (@a) = 1; (state @a) = 1; state %a = (); state (%a) = (); (state %a) = (); state ($a, $b) = (); state ($a, @b) = (); (state $a, state $b) = (); (state $a, $b) = (); (state $a, my $b) = (); (state $a, state @b) = (); (state $a, local @b) = (); (state $a, undef, state $b) = (); state ($a, undef, $b) = ();