-foreach my $file (@testitems) {
-    $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
-    next if (!$file); # skip null entries
-
-    open (FILE,$file);
-    my $bang = <FILE>;
-    close (FILE);
-    my $T = "";
-    if ($bang =~ m/#!\S*perl\s+-.*T/) {
-        $T = "T";
-    }
-    my $command = "$perlapp -c$T -I modules/fallback -I modules/override $file 2>&1";
-    my $loginfo=`$command`;
-    #print '@@'.$loginfo.'##';
-    if ($loginfo =~ /syntax ok$/im) {
-        if ($loginfo ne "$file syntax OK\n") {
-            ok(0,$file." --WARNING");
-            print $fh $loginfo;
-        } else {
-            ok(1,$file);
-        }
+my @to_compile;
+
+sub test_compile_file {
+  my ($file, $T) = @{ $_[0] };
+
+
+  my $command = "$perlapp -w -c$T -Imodules/override -It -MSupport::CanonialGlobals $file 2>&1";
+  my $loginfo=`$command`;
+
+  if ($loginfo =~ /syntax ok$/im) {
+    if ($loginfo ne "$file syntax OK\n") {
+      ok(0,$file." --WARNING");
+      print $fh $loginfo;