use MIME::Base64 qw( decode_base64 ); # ... print "Content-type: image/gif\n\n"; binmode STDOUT; print decode_base64('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); #### >perl -MMIME::Base64 -e 'print decode_base64("R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==")' > pixel.gif >perl -MMIME::Base64 -e 'print unpack("H*",decode_base64("R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="))' 47494638396101000100800000ffffff00000021f90401000000002c00000000010001000002024401003b >perl -e 'print pack("H*","47494638396101000100800000ffffff00000021f90401000000002c00000000010001000002024401003b")' > pixel2.gif >md5sum pixel.gif pixel2.gif 325472601571f31e1bf00674c368d335 pixel.gif 325472601571f31e1bf00674c368d335 pixel2.gif > #### print "Content-type: image/gif\n\n"; binmode STDOUT; print pack('H*','47494638396101000100800000ffffff00000021f90401000000002c00000000010001000002024401003b'); #### >perl -MMIME::Base64 -MData::Dumper -e '$x=decode_base64("R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="); $Data::Dumper::Useqq=1; print Dumper($x);' $VAR1 = "GIF89a\1\0\1\0\200\0\0\377\377\377\0\0\0!\371\4\1\0\0\0\0,\0\0\0\0\1\0\1\0\0\2\2D\1\0;"; > #### print "Content-type: image/gif\n\n"; binmode STDOUT; print "GIF89a\1\0\1\0\200\0\0\377\377\377\0\0\0!\371\4\1\0\0\0\0,\0\0\0\0\1\0\1\0\0\2\2D\1\0;"; #### print "Content-type: image/gif\n\nGIF89a\1\0\1\0\200\0\0\377\377\377\0\0\0!\371\4\1\0\0\0\0,\0\0\0\0\1\0\1\0\0\2\2D\1\0;";