【发布时间】:2014-01-21 13:43:46
【问题描述】:
我有以下脚本
#!/usr/bin/perl -w
print "sample\n";
syswrite STDIN, "script";
my $input = <STDIN>;
print "$input";
此脚本在 Perl 5.8.8 版本中正确执行,输出如下:
sample
script
但是在 Perl 5.14.2 中执行时会出现以下错误:
文件句柄 STDIN 仅在 ./sample.pl 第 5 行为输入打开。
Perl 版本之间发生了哪些变化?
【问题讨论】:
-
5.8.8 允许写入标准输入是“正确”执行的想法,让我觉得很有趣。在任何情况下,
perldoc perldelta都会为您提供当前版本与之前版本之间的更改列表。 -
我确实检查了 perldoc perldelta。但它没有提到任何关于 STDIN 或写入 STDIN 的内容。还有其他指针吗?
-
你应该知道每个 perldelta 只代表一个版本和前一个版本之间的变化。有关完整的故事,您需要阅读
perl589delta、perl5100delta、perl5101delta` .... 放松一下。
标签: perl