you're executing qx() in list context. the second argument to encode_entities is a character range, though.
++ because this just as obvious now as subtle enough to make me suspect that I wouldn't have spotted it easily in the first place. Indeed I don't like qx and try to avoid it if possible. Here, even if only working on a given OS, I don't see why one should rely on an external cat utility to do something that perl can handle perfectly fine itself: we would want a cheap idiom for slurping a file, and one can be provided by File::Slurp which is also known to be more efficient than the builtins. OTOH if not wanting to use an external module, I (would) do:
print encode_entities do {
open my $fh, '<', 'two-lines-with-one-slash-each.txt' or
die "D'Oh! $!\n";
local $/;
<$fh>;
};
If I wanted to stay even cheaper, I'd use @ARGV magic:
print encode_entities do { local (@ARGV,$/)='two-lines-with-one-slash-
+each.txt'; <> };
|