diff --git a/swig/perl/memtest.pl b/swig/perl/memtest.pl
index 6bd3bb08f8b304b344ee986c7299413144b2c83d..26489e36c1e16212ae5d2f21b370caf16785225d 100644
--- a/swig/perl/memtest.pl
+++ b/swig/perl/memtest.pl
@@ -1,4 +1,4 @@
-use blib;
+#use blib;
 use XML::Xerces;
 use strict;
 use Getopt::Long;
diff --git a/swig/perl/samples/EnumVal.pl b/swig/perl/samples/EnumVal.pl
index 7e446c74ba683798b84ac20c73ed10bfd9144723..b778ab03acc49cfe4def1c3030e4a159464ebc9e 100644
--- a/swig/perl/samples/EnumVal.pl
+++ b/swig/perl/samples/EnumVal.pl
@@ -25,7 +25,7 @@
 ######################################################################
 
 use strict;
-use blib;
+# use blib;
 use XML::Xerces qw(error);
 use XML::Xerces::SAX;
 use Getopt::Long;
diff --git a/swig/perl/samples/SEnumVal.pl b/swig/perl/samples/SEnumVal.pl
index 89980efd4f8ec8fef3fd932dfb8f2d00a9604a6c..f8d8441e2154a99c0bd4e2c9c4291d5b19d9edd3 100644
--- a/swig/perl/samples/SEnumVal.pl
+++ b/swig/perl/samples/SEnumVal.pl
@@ -25,7 +25,7 @@
 ######################################################################
 
 use strict;
-use blib;
+# use blib;
 use XML::Xerces qw(error);
 use XML::Xerces::SAX;
 use Getopt::Long;
diff --git a/swig/perl/scripts/memtest-light.pl b/swig/perl/scripts/memtest-light.pl
index 5336c471d87328396cacc70a63ab2114c244c751..f5214fb30fecf4806aedc44b75bf107ef4676c7b 100755
--- a/swig/perl/scripts/memtest-light.pl
+++ b/swig/perl/scripts/memtest-light.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-use blib;
+# use blib;
 use XML::Xerces;
 use strict;
 use Getopt::Long;
diff --git a/swig/perl/scripts/memtest.pl b/swig/perl/scripts/memtest.pl
index cb2bb56b1d5bd913a2e06c425178a6d27929a1df..638b4fee032b3aba17f580058b2a4dafb49cb0ff 100644
--- a/swig/perl/scripts/memtest.pl
+++ b/swig/perl/scripts/memtest.pl
@@ -1,4 +1,4 @@
-use blib;
+# use blib;
 use XML::Xerces;
 use strict;
 use Getopt::Long;
diff --git a/swig/perl/t/DOMConfig.t b/swig/perl/t/DOMConfig.t
index b1485ab9d5170cf1197ddb68fa2d09abc1742abb..88ef98f0f587b29a0b6ae751fdafd7a539bfff62 100644
--- a/swig/perl/t/DOMConfig.t
+++ b/swig/perl/t/DOMConfig.t
@@ -4,7 +4,7 @@
 
 ######################### Begin module loading
 
-use blib;
+# use blib;
 use Test::More tests => 106;
 
 BEGIN{use_ok('XML::Xerces::DOM')};
diff --git a/swig/perl/t/DOMCount.t b/swig/perl/t/DOMCount.t
index 5752647c41cb5e53fcdd7b786989f55e74b9801e..535ccc62dab2253003c07275b781f61a8a6d11ef 100644
--- a/swig/perl/t/DOMCount.t
+++ b/swig/perl/t/DOMCount.t
@@ -38,10 +38,15 @@ print OUT $document;
 close(OUT);
 
 my $perl = $Config{startperl};
-$perl =~ s/^\#!//;
-my $output = `$perl -Mblib $SAMPLE_DIR/DOMCount.pl $file 2>/dev/null`;
-# print STDERR "Out <$output>\n";
-$output =~ /(\d+) elems/;
+$perl =~ s/^\#!//;
+my $output;
+if ($^O eq 'MSWin32') {
+  $output = `$perl $SAMPLE_DIR/DOMCount.pl $file 2>NUL`;
+} else {
+  $output = `$perl $SAMPLE_DIR/DOMCount.pl $file 2>/dev/null`;
+}
+# print STDERR "Out <$output>\n";
+$output =~ /(\d+) elems/;
 is($1, 10, 'element count');
 
 END {unlink $file;}
diff --git a/swig/perl/t/DOMCreate.t b/swig/perl/t/DOMCreate.t
index cbd66ef76e33ee2a49c03a7d723e5302d8b9b1dc..0890507e16f120192e6eb6a9ebe30e20f2b9a417 100644
--- a/swig/perl/t/DOMCreate.t
+++ b/swig/perl/t/DOMCreate.t
@@ -39,8 +39,13 @@ my $document = q[<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 
 
 my $perl = $Config{startperl};
-$perl =~ s/^\#!//;
-my $cmd = "$perl -Mblib $SAMPLE_DIR/DOMCreate.pl 2>/dev/null";
+$perl =~ s/^\#!//;
+my $cmd;
+if ($^O eq 'MSWin32') {
+  $cmd = "$perl $SAMPLE_DIR/DOMCreate.pl 2>NUL";
+} else {
+  $cmd = "$perl $SAMPLE_DIR/DOMCreate.pl 2>/dev/null";
+}
 # print STDERR "Running: $cmd\n";
 my $output = `$cmd`;
 
diff --git a/swig/perl/t/DOMImplementation.t b/swig/perl/t/DOMImplementation.t
index 79cebed87dd4d347144f373a10e717a0ad1e83c0..b1267972353413cd2fe29a1c9a72d2fe36f90b73 100644
--- a/swig/perl/t/DOMImplementation.t
+++ b/swig/perl/t/DOMImplementation.t
@@ -4,8 +4,8 @@
 
 ######################### Begin module loading
 
-use blib;
-use Test::More tests => 26;
+# use blib;
+use Test::More tests => 29;
 BEGIN { use_ok("XML::Xerces::DOM") };
 
 use lib 't';
diff --git a/swig/perl/t/DOMLSOutput.t b/swig/perl/t/DOMLSOutput.t
index 5a236e0166c932f4c157880064a52ba44388c765..3c3e629ff2accec62213ba1a4a3d719a290ae137 100644
--- a/swig/perl/t/DOMLSOutput.t
+++ b/swig/perl/t/DOMLSOutput.t
@@ -40,7 +40,7 @@ isa_ok($output->getByteStream(), "XML::Xerces::XMLFormatTarget",
 isa_ok($output->getByteStream(), "XML::Xerces::MemBufFormatTarget",
        'overloaded return val getByteStream');
 
-$target = XML::Xerces::LocalFileFormatTarget->new('/tmp/foo.xml');
+$target = XML::Xerces::LocalFileFormatTarget->new('./foo.xml');
 $output->setByteStream($target);
 isa_ok($output->getByteStream(), "XML::Xerces::XMLFormatTarget",
        'byte stream');
diff --git a/swig/perl/t/DOMLSParser.t b/swig/perl/t/DOMLSParser.t
index 9b3433b890ca3d00f5d99cbc7179cbd3445a33d5..1e7bd35af748a7cf67aa0321304f2c44c0e7822d 100644
--- a/swig/perl/t/DOMLSParser.t
+++ b/swig/perl/t/DOMLSParser.t
@@ -43,7 +43,7 @@ my @persons = $doc->getElementsByTagName('person');
 is(scalar @persons, 6,'getting <person>s');
 
 # test parseURI
-$doc = eval{$DOM->parseURI("file:$PERSONAL_FILE_NAME")};
+$doc = eval{$DOM->parseURI("file:///$PERSONAL_FILE_NAME")};
 ok((not $@),'parseURI with file:');
 isa_ok($doc,'XML::Xerces::DOMDocument');
 
@@ -69,10 +69,10 @@ isa_ok($doc,'XML::Xerces::DOMDocument');
 
 @persons = $doc->getElementsByTagName('person');
 is(scalar @persons, 6,'getting <person>s');
-
+my $to_cache;
 my $grammar = $DOM->loadGrammar($PERSONAL_DTD_NAME,
 				$XML::Xerces::Grammar::DTDGrammarType,
-				my $to_cache = 1);
+				$to_cache = 1);
 isa_ok($grammar, "XML::Xerces::DTDGrammar",
        'loadGrammar(path)');
 
@@ -88,7 +88,7 @@ isa_ok($grammar, "XML::Xerces::DTDGrammar",
 
 $grammar = $DOM->loadGrammar($PERSONAL_SCHEMA_NAME,
 				$XML::Xerces::Grammar::SchemaGrammarType,
-				my $to_cache = 1);
+				$to_cache = 1);
 isa_ok($grammar, "XML::Xerces::SchemaGrammar",
        'loadGrammar(path)');
 
diff --git a/swig/perl/t/DOMLSSerializer.t b/swig/perl/t/DOMLSSerializer.t
index f33d17a7a7bdb3abf9d424e84d93ddc0498e0ad8..8c36314e5b8e9d6735805902edb0eda1af8674d9 100644
--- a/swig/perl/t/DOMLSSerializer.t
+++ b/swig/perl/t/DOMLSSerializer.t
@@ -5,7 +5,7 @@
 ######################### Begin module loading
 
 # use blib;
-use Test::More tests => 35;
+use Test::More tests => 37;
 BEGIN { use_ok("XML::Xerces::DOM") };
 
 use strict;
diff --git a/swig/perl/t/DOMNodeIterator.t b/swig/perl/t/DOMNodeIterator.t
index 8ee52a3e688fb8f1f210a6aab6c5dd2c10d171bd..0ee5ecc08819a826fbc1dbea4ceadaa3a8459c52 100644
--- a/swig/perl/t/DOMNodeIterator.t
+++ b/swig/perl/t/DOMNodeIterator.t
@@ -4,7 +4,7 @@
 
 ######################### Begin module loading
 
-use blib;
+# use blib;
 use Test::More tests => 7;
 BEGIN { use_ok("XML::Xerces::DOM") };
 use strict;
diff --git a/swig/perl/t/DOMParser.t b/swig/perl/t/DOMParser.t
index b3c3b49fc98239c301e6f25e8869af2ef73de69c..c39b48b46edc32c4f31aca570018c196ec17468f 100644
--- a/swig/perl/t/DOMParser.t
+++ b/swig/perl/t/DOMParser.t
@@ -4,7 +4,7 @@
 
 ######################### Begin module loading
 
-use blib;
+# use blib;
 use Test::More tests => 13;
 BEGIN { use_ok("XML::Xerces::DOM") };
 
diff --git a/swig/perl/t/DOMPrint.t b/swig/perl/t/DOMPrint.t
index 5a0b89d177f944e34551ed0fb2b0f405e4625e33..cc4cff8d576e190c452352bc138ee4e4e17310a2 100644
--- a/swig/perl/t/DOMPrint.t
+++ b/swig/perl/t/DOMPrint.t
@@ -42,8 +42,13 @@ print OUT $document;
 close(OUT);
 
 my $perl = $Config{startperl};
-$perl =~ s/^\#!//;
-my $output = `$perl -Mblib $SAMPLE_DIR/DOMPrint.pl $file 2>/dev/null`;
+$perl =~ s/^\#!//;
+my $output;
+if ($^O eq 'MSWin32') {
+  $output = `$perl $SAMPLE_DIR/DOMPrint.pl $file 2>NUL`;
+} else {
+  $output = `$perl $SAMPLE_DIR/DOMPrint.pl $file 2>/dev/null`;
+}
 
 ok($document eq $output)
   or diag("Expected: [$document]\nFound: [$output]\n");
diff --git a/swig/perl/t/EnumVal.t b/swig/perl/t/EnumVal.t
index 21978dcdd8bad6196f51cd9e0d152efb41168f36..accc4546630aeeb0a75ae5e96a8af1da6ba2f818 100644
--- a/swig/perl/t/EnumVal.t
+++ b/swig/perl/t/EnumVal.t
@@ -4,7 +4,7 @@
 
 ######################### Begin module loading
 
-use blib;
+# use blib;
 use Test::More tests => 12;
 BEGIN { use_ok(XML::Xerces::DOM) };
 use Config;
@@ -23,8 +23,13 @@ use strict;
 XML::Xerces::XMLPlatformUtils::Initialize();
 
 my $perl = $Config{startperl};
-$perl =~ s/^\#!//;
-my $output = `$perl -Mblib $SAMPLE_DIR/EnumVal.pl $PERSONAL_FILE_NAME 2>/dev/null`;
+$perl =~ s/^\#!//;
+my $output;
+if ($^O eq 'MSWin32') {
+  $output = `$perl $SAMPLE_DIR/EnumVal.pl $PERSONAL_FILE_NAME 2>NUL`;
+} else {
+  $output = `$perl $SAMPLE_DIR/EnumVal.pl $PERSONAL_FILE_NAME 2>/dev/null`;
+}
 
 my @lines = split("\n", $output);
 
diff --git a/swig/perl/t/SAX2Count.t b/swig/perl/t/SAX2Count.t
index 814c333bee8392d8e567f77ee965b30fd3c86abc..6630fabd0514a1ae5423f87dafb6464430bad626 100644
--- a/swig/perl/t/SAX2Count.t
+++ b/swig/perl/t/SAX2Count.t
@@ -16,8 +16,13 @@ use Config;
 ######################### Begin Test
 
 my $perl = $Config{startperl};
-$perl =~ s/^\#!//;
-my @output = split(/\n/,`$perl -Mblib $SAMPLE_DIR/SAX2Count.pl $PERSONAL_FILE_NAME 2>/dev/null`);
+$perl =~ s/^\#!//;
+my @output;
+if ($^O eq 'MSWin32') {
+  @output = split(/\n/,`$perl $SAMPLE_DIR/SAX2Count.pl $PERSONAL_FILE_NAME 2>NUL`);
+} else {
+  @output = split(/\n/,`$perl $SAMPLE_DIR/SAX2Count.pl $PERSONAL_FILE_NAME 2>/dev/null`);
+}
 $output[1] =~ /\s(\d+)/;
 is($1, 37,
    'elems');
diff --git a/swig/perl/t/SAXCount.t b/swig/perl/t/SAXCount.t
index 886c36740156e9cda1cf89cb6470d1c8898874f0..f8988dfe43ee71c5a3b22a89b2e905c4094d972e 100644
--- a/swig/perl/t/SAXCount.t
+++ b/swig/perl/t/SAXCount.t
@@ -14,10 +14,15 @@ use strict;
 use Config;
 
 ######################### Begin Test
-
+
 my $perl = $Config{startperl};
-$perl =~ s/^\#!//;
-my @output = split(/\n/,`$perl -Mblib $SAMPLE_DIR/SAXCount.pl $PERSONAL_FILE_NAME 2>/dev/null`);
+$perl =~ s/^\#!//;
+my @output;
+if ($^O eq 'MSWin32') {
+  @output = split(/\n/,`$perl $SAMPLE_DIR/SAXCount.pl $PERSONAL_FILE_NAME 2>NUL`);
+} else {
+  @output = split(/\n/,`$perl $SAMPLE_DIR/SAXCount.pl $PERSONAL_FILE_NAME 2>/dev/null`);
+}
 $output[1] =~ /\s(\d+)/;
 is($1, 37,
    'elems');
diff --git a/swig/perl/t/SEnumVal.t b/swig/perl/t/SEnumVal.t
index d3dfe65e25cf94d91ec5e912e53f8532cfebf743..63d8e7568c6838694282231de54b271ee8577487 100644
--- a/swig/perl/t/SEnumVal.t
+++ b/swig/perl/t/SEnumVal.t
@@ -4,7 +4,7 @@
 
 ######################### Begin module loading
 
-use blib;
+# use blib;
 use Test::More tests => 12;
 BEGIN { use_ok(XML::Xerces::DOM) };
 use Config;
@@ -23,8 +23,13 @@ use strict;
 XML::Xerces::XMLPlatformUtils::Initialize();
 
 my $perl = $Config{startperl};
-$perl =~ s/^\#!//;
-my $output = `$perl -Mblib $SAMPLE_DIR/SEnumVal.pl $PERSONAL_SCHEMA_FILE_NAME 2>/dev/null`;
+$perl =~ s/^\#!//;
+my $output;
+if ($^O eq 'MSWin32') {
+  $output = `$perl $SAMPLE_DIR/SEnumVal.pl $PERSONAL_SCHEMA_FILE_NAME 2>NUL`;
+} else {
+  $output = `$perl $SAMPLE_DIR/SEnumVal.pl $PERSONAL_SCHEMA_FILE_NAME 2>/dev/null`;
+}
 
 my @lines = split("\n", $output);
 
diff --git a/swig/perl/t/XMLValidator.t b/swig/perl/t/XMLValidator.t
index e56d64d76c08506ac1a623220981be7d79b5dd6d..d22ef26ffce077c670ff4f6b82d4b8e9fdb06edf 100644
--- a/swig/perl/t/XMLValidator.t
+++ b/swig/perl/t/XMLValidator.t
@@ -4,7 +4,7 @@
 
 ######################### Begin module loading
 
-use blib;
+# use blib;
 use Test::More tests => 38;
 BEGIN { use_ok(XML::Xerces::DOM) };
 BEGIN { use_ok(XML::Xerces::SAX) };