http://qs321.pair.com?node_id=348962


in reply to Problem Encoding/Decoding PDF with MIME::Base64

Practically everytime I've seen someone release a module with a slurp function it has always lacked binmode (at first), and IO::All is no different. Know thy tools

update: granted you could use open IN => ":raw", OUT => ":raw"; to set default disciplines for input and output, but a good slurp function should binmode.

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.

Replies are listed 'Best First'.
Re: binmode binmoding binmode again
by DamnDirtyApe (Curate) on Apr 28, 2004 at 21:35 UTC

    Thanks PodMaster, that was it precisely. I rewrote the programs as follows:

    encode_base64.pl:

    #! /usr/bin/perl use strict; use MIME::Base64 qw( encode_base64 ); open INFILE, '<', $ARGV[0]; binmode INFILE; open OUTFILE, '>', $ARGV[1]; my $buf; while ( read( INFILE, $buf, 60 * 57 ) ) { print OUTFILE encode_base64( $buf ); } close OUTFILE; close INFILE; __END__

    decode_base64.pl:

    #! /usr/bin/perl use strict; use MIME::Base64 qw( decode_base64 ); open INFILE, '<', $ARGV[0]; open OUTFILE, '>', $ARGV[1]; binmode OUTFILE; my $buf; while ( $buf = <INFILE> ) { print OUTFILE decode_base64( $buf ); } close OUTFILE; close INFILE; __END__

    The PDF decoded correctly this time. Thanks!


    _______________
    DamnDirtyApe
    Those who know that they are profound strive for clarity. Those who
    would like to seem profound to the crowd strive for obscurity.
                --Friedrich Nietzsche