use strict; use warnings; use File::Slurp qw( read_file ); my $f = 'testdata'; { open(my $fh, '>', $f) or die $!; print $fh ("line1\n"); print $fh ("line2\n"); print $fh ("line3\n"); } { print("Disk size: "); print((stat($f))[7], "\n"); print("\n"); print("Inlined, binmode: "); print(length(do { local $/; open(my $fh, '<', $f) or die $!; binmode($fh); <$fh> }), "\n"); print("Slurp, binmode: "); print(length(read_file($f, binmode => 1)), "\n"); print("\n"); print("Inlined, not binmode: "); print(length(do { local $/; open(my $fh, '<', $f) or die $!; <$fh> }), "\n"); print("Slurp, not binmode: "); print(length(read_file($f, binmode => 0)), "\n"); print("\n"); print("Slurp: "); print(length(read_file($f)), "\n"); } print("\n"); print("\n"); { my $inline = do { local $/; open(my $fh, '<', $f) or die $!; <$fh> }; my $slurp = read_file($f); if ($inline eq $slurp) { print("Slurp is indentical to inlined version.\n"); } else { print("Slurp is different from inlined version.\n"); } } #### Disk size: 21 Inlined, binmode: 21 Slurp, binmode: 21 Inlined, not binmode: 18 Slurp, not binmode: 18 Slurp: 18 Slurp is indentical to inlined version. #### >perl -MFile::Slurp -le "print $File::Slurp::VERSION" 9999.09 >perl -v This is perl, v5.6.1 built for MSWin32-x86-multi-thread (with 1 registered patch, see perl -V for more detail) ...