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 に答える