difforig XML-SAX-0.99-6RthvH

diff -u  XML-SAX-0.99-6RthvH/SAX/PurePerl.pm.orig
--- XML-SAX-0.99-6RthvH/SAX/PurePerl.pm.orig	2016-06-10 10:06:25.000000000 +0200
+++ XML-SAX-0.99-6RthvH/SAX/PurePerl.pm	2016-06-10 10:05:48.000000000 +0200
@@ -96,7 +96,7 @@
         $reader->set_encoding($self->{ParseOptions}{Source}{Encoding});
     }
     else {
-        $self->encoding_detect($reader);
+        $self->encoding_detect_nowarn($reader);
     }
     
     # parse a document
@@ -412,7 +412,7 @@
             if ($self->_is_external($name)) {
                 my $value = $self->_get_entity($name);
                 my $ent_reader = XML::SAX::PurePerl::Reader::URI->new($value);
-                $self->encoding_detect($ent_reader);
+                $self->encoding_detect_nowarn($ent_reader);
                 $self->extParsedEnt($ent_reader);
             }
             else {
diff -u  XML-SAX-0.99-6RthvH/SAX/PurePerl/EncodingDetect.pm.orig
--- XML-SAX-0.99-6RthvH/SAX/PurePerl/EncodingDetect.pm.orig	2009-10-10 23:16:30.000000000 +0200
+++ XML-SAX-0.99-6RthvH/SAX/PurePerl/EncodingDetect.pm	2016-06-10 12:01:16.000000000 +0200
@@ -5,11 +5,16 @@
 use strict;
 
 sub encoding_detect {
+    my $warn =  encoding_detect_nowarn(@_);
+    warn "$warn\n" if $warn;
+}
+
+sub encoding_detect_nowarn {
     my ($parser, $reader) = @_;
     
     my $error = "Invalid byte sequence at start of file";
     
-    my $data = $reader->data;
+    my $data = $reader->data();
     if ($data =~ /^\x00\x00\xFE\xFF/) {
         # BO-UCS4-be
         $reader->move_along(4);
@@ -96,9 +101,16 @@
         $reader->set_encoding('EBCDIC');
         return;
     }
-    
-    warn("Unable to recognise encoding of this document");
-    return;
+    elsif ($data =~ /^<\?xml [^>]+encoding="(\w+)"\?>/) {
+        $reader->set_encoding($1);
+        return;
+    }
+
+    # $parser->parser_error($error, $reader);
+
+    my $doc = $parser->{Source}{SystemId};
+    $doc = "this document" unless $doc;
+    return "No BOM, unable to recognise encoding of $doc";
 }
 
 1;
diff -u  XML-SAX-0.99-6RthvH/SAX/PurePerl/Reader.pm.orig
--- XML-SAX-0.99-6RthvH/SAX/PurePerl/Reader.pm.orig	2016-06-10 10:41:46.000000000 +0200
+++ XML-SAX-0.99-6RthvH/SAX/PurePerl/Reader.pm	2016-06-10 10:41:21.000000000 +0200
@@ -78,7 +78,8 @@
 }
 
 sub data {
-    my ($self, $min_length) = (@_, 1);
+    my $self = shift;
+    my $min_length = 1;
     if (length($self->[BUFFER]) < $min_length) {
         $self->read_more;
     }