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


in reply to Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };
in thread Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };

I have been using
my $slurp = join '', <FH>;
as well, but having had the idiom explained to me, I realize that this approach is potentially doing more work than the idiom. It makes sense to me that reading from a file handle in list context causes a list to be returned, which is then collapsed by the join, and that this approach is probably not as efficient.

I assume that the idiom is achieving this down in the (fast) IO layer, and the cost of the block, and the localized variable are lower.