如何在Perl中将标准输入读入变量

3

我希望能够从标准输入读取数据并将所有内容存入一个变量中,我该如何做到这一点?

我对Perl知之甚少,需要创建一个CGI脚本来读取POST请求的数据,但是找不到任何关于如何做到这一点的资料。


3
假设您知道如何分配变量并读取标准输入,我想您可能遇到了其他未指定的问题。 您是否尝试读取至EOF(列表上下文)? 您是否从不关闭的管道中读取? 您是否从终端读取? - tjd
相关链接:https://dev59.com/QHNA5IYBdhLWcg3wdtld - user202729
2个回答

8

这可能不是最权威的方法:

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

或者您可以启用 slurp 模式并一次获取整个文件:
local $/;
my $stdin = <STDIN>;

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

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

my @stdin = <STDIN>;

3
my $var = do { local $/; <> };

这个程序不仅可以读取标准输入,还可以通过命令行指定要处理的文件(类似于sed或grep)。

它也会包含换行符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接