0

$receiver 返回 1。

print "Who is receiving this message?:";
my $receiver = chomp(my $r = <STDIN>);
print $receiver;

另外,我在哪里可以找到更多关于 chomp 的文档?谢谢你。

4

5 回答 5

8

chomp$/返回从其参数列表中每个字符串的末尾删除的输入记录分隔符(无论是什么)字符数。应该使用它:

chomp(my $reciever = <STDIN>);

chomp可以在数组和列表上使用,我认为这是此功能的原因:

my $count = chomp(@array);

的文档chompperldoc -f chomp

于 2012-10-21T20:41:00.923 回答
3

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

http://perldoc.perl.org/functions/chomp.html

相反,您可能想要chomp(my $receiver = <STDIN>);

于 2012-10-21T20:40:39.673 回答
2

因为chomp返回从其参数中删除的换行符的数量。查看perldoc -f chomp更多信息。

你可能想要的是chomp(my $receiver = <STDIN>);

于 2012-10-21T20:40:37.853 回答
1

因为你用错了。

use Modern::Perl; 
my $receiver; 
chomp($receiver = <STDIN>); 
say "Result: " . $receiver;'

更多信息:

perldoc -f chomp

http://perldoc.perl.org/functions/chomp.html

于 2012-10-21T20:46:34.257 回答
0

Chomp 执行“就地”删除并返回删除的字符数。

这是错误的:

my $var = <STDIN>;
my $result = chomp ($var);  ### here, $result will have '1' and not the chomped string of <STDIN>

这是对的:

my $var = <STDIN>;
chomp ($var);
于 2012-10-22T14:21:55.050 回答