my $BUFSIZ = 64 * (2 ** 10); my ($in_fh, $buffer); open($in_fh, "<", $path) || die "$0: cannot open $path for reading: $!"; binmode($in_fh) || die "binmode failed"; while (read($in_fh, $buffer, $BUFSIZ)) { unless (print $buffer) { die "couldn't write to STDOUT: $!"; } } close($in_fh) || die "couldn't close $path: $!";