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