in reply to Writing PDF binary file from stream yields malformed PDF
The problem here is that you are using readline() on a binary file.
You are relying on the fact that many binary files happen to contain bytes that look like line ends.
And using for with a file handle means you are slurping the whole file into a list.
And if the file contains (say) a lot of packed binary integers, it could mean that you are reading and writing the file in a gazillion iddy-biddy chunks.
You say you've tried sysread and syswrite but don't show any code, or how the results failed -- ie. did you compare the input and output files?
Your best bet would be to replace the read/write loop above with something like:
open OUT ... { local $\; my $buffer; while( read( STDIN, $buffer, 4096 ) ) { print OUT $buffer; } } close OUT;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Writing PDF binary file from stream yields malformed PDF (readline bytes)
by Anonymous Monk on Jun 27, 2013 at 08:59 UTC | |
by BrowserUk (Patriarch) on Jun 27, 2013 at 09:34 UTC | |
by Anonymous Monk on Jun 27, 2013 at 09:44 UTC |