perl – 子写和字符串连接

前端之家收集整理的这篇文章主要介绍了perl – 子写和字符串连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
美好的一天,

对于工作,我突然需要知道Perl,虽然我几年前曾涉足这些艺术,但我似乎完全迷失了.对于Haskell / Java程序员来说,所有这些非结构化的打字都会让人紧张.

但是,我写了这个sub,它应该采用一行单行字符串并将它们连接成一个单行的多行字符串.我有它喜欢这样:

sub unlines {
    my ( @lines ) = @_;
    my $str = "";
    foreach $line ( @lines ) {
        $str = join $str,chomp($line),"\n";
    }
    return $str;
}

然后我想测试它,当然:

print unlines(("GET / http1.1","Host: localhost",""));

事情的结果是

000

还有很多换行.我完全不知道为什么会这样.任何人都可以帮助我,并解释一下,所有这些论证如何传递给Perl中的sub?使用@_和shift之类的东西似乎很有趣,但打字……这是一场噩梦.

谢谢收听.

解决方法

你的麻烦在于如何运作;它不返回chomped变量,它返回删除的字符数并就地修改变量.

所以先点头加入,然后加入,就像这样…

C:\temp>cat test.pl
my @lines = ('abc','def');
chomp @lines;
print join "\n",@lines;

C:\temp>test.pl
abc
def
C:\temp>

为了完整起见,这是你的unlines()看起来的样子

sub unlines {
    my @lines = @_;
    chomp @lines;    
    return join "\n",@lines;
}

猜你在找的Perl相关文章