$receiverは1を返しています。
print "Who is receiving this message?:";
my $receiver = chomp(my $r = <STDIN>);
print $receiver;
また、chompに関するその他のドキュメントはどこにありますか?ありがとうございました。
$receiverは1を返しています。
print "Who is receiving this message?:";
my $receiver = chomp(my $r = <STDIN>);
print $receiver;
また、chompに関するその他のドキュメントはどこにありますか?ありがとうございました。
chomp
$/
引数リストの各文字列の末尾から削除された入力レコード区切り文字(の中にあるものは何でも)の文字数を返します。使用する必要があります:
chomp(my $reciever = <STDIN>);
chomp
配列とリストで使用できます。これが、この機能の理由だと思います。
my $count = chomp(@array);
のドキュメントchomp
はperldoc -f chomp
すべての引数から削除された文字の総数を返します。
http://perldoc.perl.org/functions/chomp.htmlを参照してください
代わりに、あなたはおそらくしたいchomp(my $receiver = <STDIN>);
chomp
引数から削除された改行文字の数を返すためです。詳細については、perldoc -f chomp
をご覧ください。
あなたがおそらく欲しいのはchomp(my $receiver = <STDIN>);
間違って使っているからです。
use Modern::Perl;
my $receiver;
chomp($receiver = <STDIN>);
say "Result: " . $receiver;'
詳しくは:
perldoc -f chomp
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);