如何将 STDIN 读入 perl 中的变量

How to read STDIN into a variable in perl

我想从 STDIN 读取并将所有内容都放在一个变量中,我该怎么做?

我对 Perl 几乎一无所知,需要创建 CGI 脚本来从 POST 请求中读取数据,但找不到任何操作方法。

这可能不是最确定的方法:

my $stdin = join("", <STDIN>);

或者您可以启用 slurp 模式并一次性获取整个文件:

local $/;
my $stdin = <STDIN>;

[但请参阅 man perlvar 了解有关对特殊变量进行全局更改的注意事项]

如果您想要一个每行一个元素的数组而不是标量:

my @stdin = <STDIN>;
my $var = do { local $/; <> };

这不太符合标准输入,它还允许在命令行上指定文件进行处理(如 sed 或 grep)。

这确实包括换行符。