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 BEGIN { chdir 't' if -d 't'; @INC = ('.', '../lib'); require 'test.pl'; } plan (171); # # @foo, @bar, and @ary are also used from tie-stdarray after tie-ing them # @ary = (1,2,3,4,5); is(join('',@ary), '12345'); $tmp = $ary[$#ary]; --$#ary; is($tmp, 5); is($#ary, 3); is(join('',@ary), '1234'); @foo = (); $r = join(',', $#foo, @foo); is($r, "-1"); $foo[0] = '0'; $r = join(',', $#foo, @foo); is($r, "0,0"); $foo[2] = '2'; $r = join(',', $#foo, @foo); is($r, "2,0,,2"); @bar = (); $bar[0] = '0'; $bar[1] = '1'; $r = join(',', $#bar, @bar); is($r, "1,0,1"); @bar = (); $r = join(',', $#bar, @bar); is($r, "-1"); $bar[0] = '0'; $r = join(',', $#bar, @bar); is($r, "0,0"); $bar[2] = '2'; $r = join(',', $#bar, @bar); is($r, "2,0,,2"); reset 'b' if $^O ne 'VMS'; @bar = (); $bar[0] = '0'; $r = join(',', $#bar, @bar); is($r, "0,0"); $bar[2] = '2'; $r = join(',', $#bar, @bar); is($r, "2,0,,2"); $foo = 'now is the time'; ok(scalar (($F1,$F2,$Etc) = ($foo =~ /^(\S+)\s+(\S+)\s*(.*)/))); is($F1, 'now'); is($F2, 'is'); is($Etc, 'the time'); $foo = 'lskjdf'; ok(!($cnt = (($F1,$F2,$Etc) = ($foo =~ /^(\S+)\s+(\S+)\s*(.*)/)))) or diag("$cnt $F1:$F2:$Etc"); %foo = ('blurfl','dyick','foo','bar','etc.','etc.'); %bar = %foo; is($bar{'foo'}, 'bar'); %bar = (); is($bar{'foo'}, undef); (%bar,$a,$b) = (%foo,'how','now'); is($bar{'foo'}, 'bar'); is($bar{'how'}, 'now'); @bar{keys %foo} = values %foo; is($bar{'foo'}, 'bar'); is($bar{'how'}, 'now'); @foo = grep(/e/,split(' ','now is the time for all good men to come to')); is(join(' ',@foo), 'the time men come'); @foo = grep(!/e/,split(' ','now is the time for all good men to come to')); is(join(' ',@foo), 'now is for all good to to'); $foo = join('',('a','b','c','d','e','f')[0..5]); is($foo, 'abcdef'); $foo = join('',('a','b','c','d','e','f')[0..1]); is($foo, 'ab'); $foo = join('',('a','b','c','d','e','f')[6]); is($foo, ''); @foo = ('a','b','c','d','e','f')[0,2,4]; @bar = ('a','b','c','d','e','f')[1,3,5]; $foo = join('',(@foo,@bar)[0..5]); is($foo, 'acebdf'); $foo = ('a','b','c','d','e','f')[0,2,4]; is($foo, 'e'); $foo = ('a','b','c','d','e','f')[1]; is($foo, 'b'); @foo = ( 'foo', 'bar', 'burbl'); { no warnings 'deprecated'; push(foo, 'blah'); } is($#foo, 3); # various AASSIGN_COMMON checks (see newASSIGNOP() in op.c) #curr_test(38); @foo = @foo; is("@foo", "foo bar burbl blah"); # 38 (undef,@foo) = @foo; is("@foo", "bar burbl blah"); # 39 @foo = ('XXX',@foo, 'YYY'); is("@foo", "XXX bar burbl blah YYY"); # 40 @foo = @foo = qw(foo b\a\r bu\\rbl blah); is("@foo", 'foo b\a\r bu\\rbl blah'); # 41 @bar = @foo = qw(foo bar); # 42 is("@foo", "foo bar"); is("@bar", "foo bar"); # 43 # try the same with local # XXX tie-stdarray fails the tests involving local, so we use # different variable names to escape the 'tie' @bee = ( 'foo', 'bar', 'burbl', 'blah'); { local @bee = @bee; is("@bee", "foo bar burbl blah"); # 44 { local (undef,@bee) = @bee; is("@bee", "bar burbl blah"); # 45 { local @bee = ('XXX',@bee,'YYY'); is("@bee", "XXX bar burbl blah YYY"); # 46 { local @bee = local(@bee) = qw(foo bar burbl blah); is("@bee", "foo bar burbl blah"); # 47 { local (@bim) = local(@bee) = qw(foo bar); is("@bee", "foo bar"); # 48 is("@bim", "foo bar"); # 49 } is("@bee", "foo bar burbl blah"); # 50 } is("@bee", "XXX bar burbl blah YYY"); # 51 } is("@bee", "bar burbl blah"); # 52 } is("@bee", "foo bar burbl blah"); # 53 } # try the same with my { my @bee = @bee; is("@bee", "foo bar burbl blah"); # 54 { my (undef,@bee) = @bee; is("@bee", "bar burbl blah"); # 55 { my @bee = ('XXX',@bee,'YYY'); is("@bee", "XXX bar burbl blah YYY"); # 56 { my @bee = my @bee = qw(foo bar burbl blah); is("@bee", "foo bar burbl blah"); # 57 { my (@bim) = my(@bee) = qw(foo bar); is("@bee", "foo bar"); # 58 is("@bim", "foo bar"); # 59 } is("@bee", "foo bar burbl blah"); # 60 } is("@bee", "XXX bar burbl blah YYY"); # 61 } is("@bee", "bar burbl blah"); # 62 } is("@bee", "foo bar burbl blah"); # 63 } # try the same with our (except that previous values aren't restored) { our @bee = @bee; is("@bee", "foo bar burbl blah"); { our (undef,@bee) = @bee; is("@bee", "bar burbl blah"); { our @bee = ('XXX',@bee,'YYY'); is("@bee", "XXX bar burbl blah YYY"); { our @bee = our @bee = qw(foo bar burbl blah); is("@bee", "foo bar burbl blah"); { our (@bim) = our(@bee) = qw(foo bar); is("@bee", "foo bar"); is("@bim", "foo bar"); } } } } } # make sure reification behaves my $t = curr_test(); sub reify { $_[1] = $t++; print "@_\n"; } reify('ok'); reify('ok'); curr_test($t); # qw() is no longer a runtime split, it's compiletime. is (qw(foo bar snorfle)[2], 'snorfle'); @ary = (12,23,34,45,56); is(shift(@ary), 12); is(pop(@ary), 56); is(push(@ary,56), 4); is(unshift(@ary,12), 5); sub foo { "a" } @foo=(foo())[0,0]; is ($foo[1], "a"); # bugid #15439 - clearing an array calls destructors which may try # to modify the array - caused 'Attempt to free unreferenced scalar' my $got = runperl ( prog => q{ sub X::DESTROY { @a = () } @a = (bless {}, q{X}); @a = (); }, stderr => 1 ); $got =~ s/\n/ /g; is ($got, ''); # Test negative and funky indices. { my @a = 0..4; is($a[-1], 4); is($a[-2], 3); is($a[-5], 0); ok(!defined $a[-6]); is($a[2.1] , 2); is($a[2.9] , 2); is($a[undef], 0); is($a["3rd"], 3); } { my @a; eval '$a[-1] = 0'; like($@, qr/Modification of non-creatable array value attempted, subscript -1/, "\$a[-1] = 0"); } sub test_arylen { my $ref = shift; local $^W = 1; is ($$ref, undef, "\$# on freed array is undef"); my @warn; local $SIG{__WARN__} = sub {push @warn, "@_"}; $$ref = 1000; is (scalar @warn, 1); like ($warn[0], qr/^Attempt to set length of freed array/); } { my $a = \$#{[]}; # Need a new statement to make it go out of scope test_arylen ($a); test_arylen (do {my @a; \$#a}); } { use vars '@array'; my $outer = \$#array; is ($$outer, -1); is (scalar @array, 0); $$outer = 3; is ($$outer, 3); is (scalar @array, 4); my $ref = \@array; my $inner; { local @array; $inner = \$#array; is ($$inner, -1); is (scalar @array, 0); $$outer = 6; is (scalar @$ref, 7); is ($$inner, -1); is (scalar @array, 0); $$inner = 42; } is (scalar @array, 7); is ($$outer, 6); is ($$inner, undef, "orphaned $#foo is always undef"); is (scalar @array, 7); is ($$outer, 6); $$inner = 1; is (scalar @array, 7); is ($$outer, 6); $$inner = 503; # Bang! is (scalar @array, 7); is ($$outer, 6); } { # Bug #36211 use vars '@array'; for (1,2) { { local @a; is ($#a, -1); @a=(1..4) } } } { # Bug #37350 my @array = (1..4); $#{@array} = 7; is ($#{4}, 7); my $x; $#{$x} = 3; is(scalar @$x, 4); push @{@array}, 23; is ($4[8], 23); } { # Bug #37350 -- once more with a global use vars '@array'; @array = (1..4); $#{@array} = 7; is ($#{4}, 7); my $x; $#{$x} = 3; is(scalar @$x, 4); push @{@array}, 23; is ($4[8], 23); } # more tests for AASSIGN_COMMON { our($x,$y,$z) = (1..3); our($y,$z) = ($x,$y); is("$x $y $z", "1 1 2"); } { our($x,$y,$z) = (1..3); (our $y, our $z) = ($x,$y); is("$x $y $z", "1 1 2"); } { # AASSIGN_COMMON detection with logical operators my $true = 1; our($x,$y,$z) = (1..3); (our $y, our $z) = $true && ($x,$y); is("$x $y $z", "1 1 2"); } # [perl #70171] { my $x = get_x(); my %x = %$x; sub get_x { %x=(1..4); return \%x }; is( join(" ", map +($_,$x{$_}), sort keys %x), "1 2 3 4", 'bug 70171 (self-assignment via my %x = %$x)' ); my $y = get_y(); my @y = @$y; sub get_y { @y=(1..4); return \@y }; is( "@y", "1 2 3 4", 'bug 70171 (self-assignment via my @x = @$x)' ); } # [perl #70171], [perl #82110] { my ($i, $ra, $rh); again: my @a = @$ra; # common assignment on 2nd attempt my %h = %$rh; # common assignment on 2nd attempt @a = qw(1 2 3 4); %h = qw(a 1 b 2 c 3 d 4); $ra = \@a; $rh = \%h; goto again unless $i++; is("@a", "1 2 3 4", 'bug 70171 (self-assignment via my @x = @$x) - goto variant' ); is( join(" ", map +($_,$h{$_}), sort keys %h), "a 1 b 2 c 3 d 4", 'bug 70171 (self-assignment via my %x = %$x) - goto variant' ); } *trit = *scile; $trit[0]; ok(1, 'aelem_fast on a nonexistent array does not crash'); # [perl #107440] sub A::DESTROY { $::ra = 0 } $::ra = [ bless [], 'A' ]; undef @$::ra; pass 'no crash when freeing array that is being undeffed'; $::ra = [ bless [], 'A' ]; @$::ra = ('a'..'z'); pass 'no crash when freeing array that is being cleared'; # [perl #85670] Copying magic to elements SKIP: { skip "no Scalar::Util::weaken on miniperl", 1, if is_miniperl; require Scalar::Util; package glelp { Scalar::Util::weaken ($a = \@ISA); @ISA = qw(Foo); Scalar::Util::weaken ($a = \$ISA[0]); ::is @ISA, 1, 'backref magic is not copied to elements'; } } package peen { $#ISA = -1; @ISA = qw(Foo); $ISA[0] = qw(Sphare); sub Sphare::pling { 'pling' } ::is eval { pling peen }, 'pling', 'arylen_p magic does not stop isa magic from being copied'; } # Test that &PL_sv_undef is not special in arrays sub { ok exists $_[0], 'exists returns true for &PL_sv_undef elem [perl #7508]'; is \$_[0], \undef, 'undef preserves identity in array [perl #109726]'; }->(undef); # and that padav also knows how to handle the resulting NULLs @_ = sub { my @a; $a[1]=1; @a }->(); is join (" ", map $_//"undef", @_), "undef 1", 'returning my @a with nonexistent elements'; # [perl #118691] @plink=@plunk=(); $plink[3] = 1; sub { $_[0] = 2; is $plink[0], 2, '@_ alias to nonexistent elem within array'; $_[1] = 3; is $plink[1], 3, '@_ alias to nonexistent neg index within array'; is $_[2], undef, 'reading alias to negative index past beginning'; eval { $_[2] = 42 }; like $@, qr/Modification of non-creatable array value attempted, (?x: )subscript -5/, 'error when setting alias to negative index past beginning'; is $_[3], undef, 'reading alias to -1 elem of empty array'; eval { $_[3] = 42 }; like $@, qr/Modification of non-creatable array value attempted, (?x: )subscript -1/, 'error when setting alias to -1 elem of empty array'; }->($plink[0], $plink[-2], $plink[-5], $plunk[-1]); $_ = \$#{[]}; $$_ = \1; "$$_"; pass "no assertion failure after assigning ref to arylen when ary is gone"; { # Test aelemfast for both +ve and -ve indices, both lex and package vars. # Make especially careful that we don't have any edge cases around # fitting an I8 into a U8. my @a = (0..299); is($a[-256], 300-256, 'lex -256'); is($a[-255], 300-255, 'lex -255'); is($a[-254], 300-254, 'lex -254'); is($a[-129], 300-129, 'lex -129'); is($a[-128], 300-128, 'lex -128'); is($a[-127], 300-127, 'lex -127'); is($a[-126], 300-126, 'lex -126'); is($a[ -1], 300- 1, 'lex -1'); is($a[ 0], 0, 'lex 0'); is($a[ 1], 1, 'lex 1'); is($a[ 126], 126, 'lex 126'); is($a[ 127], 127, 'lex 127'); is($a[ 128], 128, 'lex 128'); is($a[ 129], 129, 'lex 129'); is($a[ 254], 254, 'lex 254'); is($a[ 255], 255, 'lex 255'); is($a[ 256], 256, 'lex 256'); @aelem =(0..299); is($aelem[-256], 300-256, 'pkg -256'); is($aelem[-255], 300-255, 'pkg -255'); is($aelem[-254], 300-254, 'pkg -254'); is($aelem[-129], 300-129, 'pkg -129'); is($aelem[-128], 300-128, 'pkg -128'); is($aelem[-127], 300-127, 'pkg -127'); is($aelem[-126], 300-126, 'pkg -126'); is($aelem[ -1], 300- 1, 'pkg -1'); is($aelem[ 0], 0, 'pkg 0'); is($aelem[ 1], 1, 'pkg 1'); is($aelem[ 126], 126, 'pkg 126'); is($aelem[ 127], 127, 'pkg 127'); is($aelem[ 128], 128, 'pkg 128'); is($aelem[ 129], 129, 'pkg 129'); is($aelem[ 254], 254, 'pkg 254'); is($aelem[ 255], 255, 'pkg 255'); is($aelem[ 256], 256, 'pkg 256'); } "We're included by lib/Tie/Array/std.t so we need to return something true";