5 $Is_VMS = $^O eq 'VMS';
6 $Is_MSWin32 = $^O eq 'MSWin32';
7 $Is_MacOS = $^O eq 'MacOS';
8 $Is_NetWare = $^O eq 'NetWare';
9 $ENV{PERL5LIB} = "../lib" unless $Is_VMS;
14 @prgs = split "\n########\n", <DATA>;
15 print "1..", scalar @prgs, "\n";
17 $tmpfile = "asubtmp000";
18 1 while -f ++$tmpfile;
19 END { if ($tmpfile) { 1 while unlink $tmpfile; } }
26 my($prog,$expected) = split(/\nEXPECT\n/, $_);
27 open TEST, ">$tmpfile";
30 my $results = $Is_VMS ?
31 `MCR $^X "-I[-.lib]" $switch $tmpfile 2>&1` :
33 `.\\perl -I../lib $switch $tmpfile 2>&1` :
35 `$^X -I::lib $switch $tmpfile` :
37 `perl -I../lib $switch $tmpfile 2>&1` :
38 `./perl $switch $tmpfile 2>&1`;
41 # allow expected output to be written as if $prog is on STDIN
42 $results =~ s/runltmp\d+/-/g;
43 $results =~ s/\n%[A-Z]+-[SIWEF]-.*$// if $Is_VMS; # clip off DCL status msg
44 $expected =~ s/\n+$//;
45 if ($results ne $expected) {
46 print STDERR "PROG: $switch\n$prog\n";
47 print STDERR "EXPECTED:\n$expected\n";
48 print STDERR "GOT:\n$results\n";
51 print "ok ", ++$i, "\n";
68 my $dummy = $n; # eval can't close on $n without internal reference
81 eval 'sub { print $n }';
93 eval 'sub Y { my $p = shift; $p->() }';