X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FRequest%2FUpload.pm;fp=lib%2FCatalyst%2FRequest%2FUpload.pm;h=486653c61b582d7c265429a5218da04a0d85f64d;hp=bf9318f64013c79bcdab1de0e88007f1832a33d4;hb=2d48c2fc524aa2c1c077ba4be61970ed698af12d;hpb=0d42b769cb502cae1587cbe8e606ea15921508d2 diff --git a/lib/Catalyst/Request/Upload.pm b/lib/Catalyst/Request/Upload.pm index bf9318f..486653c 100644 --- a/lib/Catalyst/Request/Upload.pm +++ b/lib/Catalyst/Request/Upload.pm @@ -211,14 +211,20 @@ sub slurp { $layer = ':raw'; } - my $content = undef; + my $content = ''; my $handle = $self->fh; binmode( $handle, $layer ); $handle->seek(0, IO::File::SEEK_SET); - while ( $handle->sysread( my $buffer, 8192 ) ) { - $content .= $buffer; + + if ($layer eq ':raw') { + while ( $handle->sysread( my $buffer, 8192 ) ) { + $content .= $buffer; + } + } + else { + $content = do { local $/; $handle->getline }; } $handle->seek(0, IO::File::SEEK_SET); @@ -237,11 +243,9 @@ sub decoded_slurp { my ( $self, $layer ) = @_; my $handle = $self->decoded_fh($layer); - my $content = undef; $handle->seek(0, IO::File::SEEK_SET); - while ( $handle->sysread( my $buffer, 8192 ) ) { - $content .= $buffer; - } + + my $content = do { local $/; $handle->getline }; $handle->seek(0, IO::File::SEEK_SET); return $content;