2

ユーザーから入力を取得しようとすると、なぜチョップ機能が機能しないのかを理解しようとしています:

my $string = <STDIN>;
my $chr = chop($string);
print "String: $string\n";
print "Char: $chr\n";

出力

perl chop.pl
hello
String: hello
Char:

しかし、文字列を使用すると機能します。

my $string = "frong";
my $chr = chop($string);
print "String: $string\n";
print "Char: $chr\n";

出力 [583]

perl chop.pl
String: fron
Char: g
4

4 に答える 4

4

コンソールから入力を渡すと、文字列の最後にある がchop切り刻まれます。これは、 を押したときに存在します。あなたの文字列にはそれが含まれていませんが。newlineEnter

于 2012-11-01T19:24:50.127 に答える
0

あなたがchop()しているのは、文字列の最後にある改行です。STDINからの割り当て時に改行を削除するには:

chomp(my $string = <STDIN>);

つまり、プログラムは次のようになります。

chomp(my $string = <STDIN>);
my $chr = chop($string);
print "String: $string\n";
print "Char: $chr\n";
于 2012-11-01T20:02:48.827 に答える
0

chopこれら 2 つの関数については、perl のドキュメントを確認してchompください。

chomp

chomp この "chop" のより安全なバージョンは、$/ の現在の値に対応する末尾の文字列をすべて削除します ("English" モジュールでは $INPUT_RECORD_SEPARATOR とも呼ばれます)。

chop

チョップ 文字列の最後の文字を切り取り、切り捨てた文字を返します。

この助けを願っています

于 2012-11-01T21:55:15.620 に答える