当我使用<stdin>
在 Perl 模块中(*.pm
)文件它不是从键盘读取输入,但是当我使用<STDIN>
在同一个地方它工作得很好。
为什么我使用的时候收不到输入<stdin>
?
STDIN
是记录的文件句柄。那里存在stdin
以及,它的别名是STDIN
,但它只适用于main::
包裹:main::stdin
是相同的main::STDIN
(如记录在perlop - Perl 运算符和优先级 http://p3rl.org/perlop).
因此,在一个包中,
package My::Package;
sub xx {
print while <stdin>;
}
stdin
被解释为My::Package::stdin
,它不存在。您可以使用main::stdin
来自包,但使用标准STDIN
(它总是指向main::STDIN
,即使是从包装中)也更干净。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)