2 my $keep_plc = 0; # set it to keep the bytecode files
3 my $keep_plc_fail = 1; # set it to keep the bytecode files on failures
7 print "1..0 # skip - Bytecode/ByteLoader doesn't work on VMS\n";
12 @INC = ('.', '../lib');
18 if (($Config{'extensions'} !~ /\bB\b/) ){
19 print "1..0 # Skip -- Perl configured without B module\n";
22 if ($Config{ccflags} =~ /-DPERL_COPY_ON_WRITE/) {
23 print "1..0 # skip - no COW for now\n";
26 require 'test.pl'; # for run_perl()
31 my @tests = split /\n###+\n/, <DATA>;
33 print "1..".($#tests+1)."\n";
40 my ($script, $expect) = split />>>+\n/;
42 $test = "bytecode$cnt.pl";
43 open T, ">$test"; print T $script; close T;
44 $got = run_perl(switches => [ "-MO=Bytecode,-H,-o${test}c" ],
45 verbose => 0, # for debugging
46 stderr => 1, # to capture the "bytecode.pl syntax ok"
49 $got = run_perl(progfile => "${test}c"); # run the .plc
51 if ($got =~ /^$expect$/) {
55 $keep_plc = $keep_plc_fail unless $keep_plc;
77 1 while unlink($test, $keep_plc ? () : "${test}c");
86 ############################################################
87 for (1,2,3) { print if /\d/ }
90 ############################################################
91 $_ = "xyxyx"; %j=(1,2); s/x/$j{print('z')}/ge; print $_
94 ############################################################
95 $_ = "xyxyx"; %j=(1,2); s/x/$j{print('z')}/g; print $_
98 ############################################################
99 split /a/,"bananarama"; print @_
102 ############################################################
103 { package P; sub x { print 'ya' } x }
106 ############################################################
107 @z = split /:/,"b:r:n:f:g"; print @z
110 ############################################################
111 sub AUTOLOAD { print 1 } &{"a"}()
114 ############################################################
115 my $l = 3; $x = sub { print $l }; &$x
118 ############################################################
120 my $foo = sub {$i = shift if @_};
125 ############################################################
126 $x="Cannot use"; print index $x, "Can"
129 ############################################################
130 my $i=6; eval "print \$i\n"
133 ############################################################
134 BEGIN { %h=(1=>2,3=>4) } print $h{3}
137 ############################################################
142 ############################################################
150 ############################################################
151 BEGIN { tie @a, __PACKAGE__; sub TIEARRAY { bless{} } sub FETCH { 1 } }
155 ############################################################
156 my $i=3; print 1 .. $i
159 ############################################################
160 my $h = { a=>3, b=>1 }; print sort {$h->{$a} <=> $h->{$b}} keys %$h
163 ############################################################
164 print sort { my $p; $b <=> $a } 1,4,3