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