Добрый день,
Для работы мне вдруг стало необходимо знать 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
И много новых строк.Я понятия не имею, почему это так.Кто-нибудь может мне помочь и объяснить, возможно, как все эти аргументы, передаваемые в subs в Perl, работают?Кажется, очень интересно работать с такими вещами, как @_
и shift
, но набор текста ... это кошмар.
Спасибо за внимание.