Subject: | Don't use local @ARGV=...; <> for slurping file contents |
Rex::Config is using something like
@ARGV = ...; <>
to slurp file contents, and this may happen during compile time (e.g. read_ssh_config is called in import(), so a "use Rex::Config" would trigger this code). Unfortunately this means that a currently active <> loop would break. See https://github.com/cpan-testers/CPAN-Reporter/issues/20 for an issue where this actually happens.
Probably it's safer to use instead
do { open my $fh, $file or die $!; undef $/; <$fh> }
even if it's slightly longer. Or alternatively
use IO::File ();
join '', IO::File->new($file)->getlines;