我对chomp
的行为很奇怪。 <STDIN>
为输入添加了尾随换行符,我想删除它,所以我使用如下的chomp:
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");
}
当我输入任何名称值(字符串),例如“Fox”时,我希望输出如下:
Fox
FoxFox
FoxFoxFox
FoxFoxFoxFox
etc..
然而,“Fox”被数值1
取代,即
1
11
111
1111
我试图从关于chomp的perl官方手册获得帮助,但我无法在那里得到任何帮助。有人会解释为什么chomp会这样做,以及如何解决这个问题?
我再次回顾了这本书上的例子,我发现他们使用chomp
无法分配,即:
$n = chomp($n);
# Is replaced by
chomp($n);
确实通过这种方式打印出脚本如预期的那样!我也不知道如何以及为什么?
答案 0 :(得分:6)
来自chomp上的perldoc:
它返回从其所有参数中删除的字符总数
您将$ n设置为chomp($ n)的返回值:
$ n = chomp($ n);
要做你想做的事,你可以简单
chomp($n)