开始Perl <STDIN>

She*_*hon 5 perl

这是一个非常简单且非关键的问题.我之前有一些编程背景(从FORTRAN开始,那是多久以前),我正在使用Simon Cozen的Beginning Perl学习一些perl编码的基础知识.第2章分配包括编写一个简单的程序来解释整数条目(<STDIN>)并打印等于数字的十进制整数.我有Windows 7.输入整数后,程序输出警告

 Illegal hexadecimal digit '
 ' ignored at [path] line [the line containing the print instruction], <STDIN> line 1
Run Code Online (Sandbox Code Playgroud)

然后它会打印正确的十六进制数.

代码是

$number = <STDIN>;
print hex($number), "\n";
Run Code Online (Sandbox Code Playgroud)

当我更改程序以输出八进制时,我没有得到警告.

警告说,即使参考STDIN线,非法数字也会出现在打印行上.是否与enter键有关?如果是这样,为什么同一程序的oct版本没有问题?

gee*_*aur 8

问题是它$number的线路终结器仍然存在; 使用chomp将其删除.