为什么不按预期连接?

时间:2014-01-31 15:52:05

标签: perl concatenation

我正在尝试使用一些Perl并做一些简单的练习让自己习惯它。

其中一个练习是操纵弦乐,我写了下面的内容。

#!/usr/bin/perl

use strict;

print "Please enter some text..\n";
my $string =<STDIN>;

my $string_reverse = reverse $string;
print "Reversed: $string_reverse\n";

my $string_length = length $string;
print "Length: $string_length\n";

my $string_upper = uc $string;
print "Uppercase: $string_upper\n";

my $string_lower = lc $string;
print "Lowercase: $string_lower\n";
print "Enter a second bit of text\n";

my $second_string = <STDIN>;
print $string . $second_string;

这会产生以下输出。

Please enter some text..
test
Reversed:
tset
Length: 5
Uppercase: TEST

Lowercase: test

Enter a second bit of text
123
test
123

我希望连接的文本显示为:

  

test123

为什么每次都在新线上显示?

2 个答案:

答案 0 :(得分:8)

my $string =<STDIN>;

读取字符串,包括换行符。

尝试使用chomp修剪换行符。

答案 1 :(得分:1)

我无法得到你的榜样,但无论如何我都会冒险回答。如果您从<STDIN>获取字符串,则字符串中会有换行符。对于每个字符串,可能需要使用chomp($your_str)删除这些内容。