当我在Perl模块(*.pm)文件中使用<stdin>时,它不是从键盘读取输入,但是当我在相同位置使用<STDIN>时,它工作得很好。
当我使用<stdin>时,为什么没有得到输入?
发布于 2015-07-02 21:20:09
STDIN是记录在案的文件句柄。还有stdin,它的别名是STDIN,但它只在main::包中起作用:main::stdin与main::STDIN相同(如perlop - Perl operators and precedence中所述)。
因此,在一个包裹中,
package My::Package;
sub xx {
print while <stdin>;
}stdin被解释为My::Package::stdin,但并不存在。您可以在包中使用main::stdin,但使用标准STDIN (它始终指向main::STDIN,甚至从包中)要干净得多。
https://stackoverflow.com/questions/31185416
复制相似问题