我如何在Perl中啜饮STDIN?

phi*_*ogg 16 perl

我管道输出了几个脚本.其中一个脚本输出整个HTML页面,由我的perl脚本处理.我希望能够将整个58K的文本拉入perl脚本(当然,它将包含换行符).

我认为这可行:

open(my $TTY, '<', '/dev/tty');

my $html_string= do { local( @ARGV, $/ ) = $TTY ; <> } ;
Run Code Online (Sandbox Code Playgroud)

但它只是没有做我需要的.有什么建议?

Sin*_*nür 49

my @lines = <STDIN>;
Run Code Online (Sandbox Code Playgroud)

要么

my $str = do { local $/; <STDIN> };
Run Code Online (Sandbox Code Playgroud)


G. *_*ito 7

我不能不说这个机会说不管我多么 IO::All不说:

♥♥__"我真的很喜欢IO::All......很多"__♥♥

POD概要的变化:

use IO::All;
my $contents < io('-') ;
print "\n printing your IO: \n $contents \n with IO::All goodness ..." ;
Run Code Online (Sandbox Code Playgroud)

警告: IO::All可能会开始用自己阴险的优点替换你在perl中了解IO的所有其他信息.

  • 这可能是我在SO上读到的最好的答案之一. (13认同)