Perl chomp将字符串转换为数值

Sai*_*akR 1 perl

我得到一个奇怪的行为chomp.在<STDIN>增加了换行符的投入,我想删除它,所以我使用格格像下面这样:

print("Enter Your Name:\n");
$n = <STDIN>;
$n = chomp($n); 
print("Your Name: $n");
$out = "";
for ($i =0; $i < 10; $i++)
{
  $out .= $n;
  print ($out);
  print("\n");
} 
Run Code Online (Sandbox Code Playgroud)

当我输入任何名称值(字符串),如"Fox"时,我希望输出如下:

Fox
FoxFox
FoxFoxFox
FoxFoxFoxFox
etc..
Run Code Online (Sandbox Code Playgroud)

然而,"Fox"被数值替换1

1
11
111
1111
Run Code Online (Sandbox Code Playgroud)

我试图从关于chomp的perl官方手册中获得帮助,但我无法在那里得到任何帮助.有人会解释为什么chomp会这样做以及如何解决这个问题?

编辑

我再次回顾了这本书上的例子,我发现他们使用了chomp无法分配,即:

$n = chomp($n);
# Is replaced by
chomp($n); 
Run Code Online (Sandbox Code Playgroud)

事实上,通过这种方式脚本打印输出正如预期!另外我不知道怎么样和为什么?

Zip*_*ers 6

来自chomp上的perldoc:

它返回从其所有参数中删除的字符总数

你将$ n设置为chomp($ n)的返回值:

$ n = chomp($ n);

要做你想做的事,你可以简单 chomp($n)

  • 甚至`chomp($ n = <STDIN>);` (4认同)