Jakub Narebski <jnareb@xxxxxxxxx> writes: > Jeff King wrote: > >> On Wed, Oct 11, 2006 at 02:23:00PM +0200, Jakub Narebski wrote: >> >>> Can any Perl expert tell us how Perl truly solve this? What is the best >>> way to dump whole [remaining] contents of file (from filehandle) to STDOUT? >> >> The same you would in C: read fix-sized buffers and dump them. > [...] >> Or you can use the File::Copy module, which is part of the standard >> distribution (and I believe has been so for all perl5 versions, but I >> could be wrong): > > And > > { > local $/; > print <$fd>; > } > > doesn't do the right thing? Jakub, you asked for "the best way" not "any way that would produce a correct result". Your 4-liner is shorter in the source but it risks slurping a 10 megabyte file into memory first, only to discard it after immediately writing it out. You can strace your Perl to see what yours does yourself: strace perl -e 'print <STDIN>' >/dev/null <some-huge-file You will see a bunch of read(0, ..., 4096) and after all of that finishes, finally you will see a bunch of write(1, ..., 4096). Where do you think the data is in the meantime? Jeff gave you better ways that do not have that problem. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html