/ / Łączenie ciągów ze spacjami w Perlu. Dowolne wbudowane? - perl

Łączenie ciągów ze spacjami w Perlu. Dowolne wbudowane? - perl

W Perlu mogę łączyć wiele ciągów za pomocą spacji między nimi w następujący sposób:

my $long_string = $one_string . " " . $another_string . " " . $yet_another_string . " " .
$and_another_string . " " $the_lastr_string

Jednak wpisywanie tego jest trochę uciążliwe.

Czy istnieje wbudowane narzędzie, które może ułatwić to zadanie?

na przykład coś jak:

concatenate_with_spaces($one_string, $another_string, $yet_another_string, ...)

Odpowiedzi:

13 dla odpowiedzi nr 1

Chcesz join:

my $x = "X";
my @vars = ( 1, "then", "some" );
my $long_string = join " ", $x, 2, @vars;   # "X 2 1 then some"

9 dla odpowiedzi nr 2

Zaid podał rozwiązanie idiomatyczne, używając join. Jest jednak więcej sposobów na zrobienie tego.

my @vars = ($one, $two, $three);
my $str1 = "@vars";               # Using array interpolation
my $str2 = "$one $two $three";    # interpolating scalars directly

Interpolacja tablicy wykorzystuje predefiniowaną zmienną $" (oddzielacz listy), który jest domyślnie ustawiony na spację. Podczas interpolacji zmiennych nie trzeba ich używać . aby połączyć spacje z Twoimi strunami, mogą być użyte bezpośrednio w ciągu podwójnie cytowanym.


4 dla odpowiedzi nr 3
my @list_of_strings = ($one_string, $two_strings );
my $string = join(" ", @list_of_strings );
print $string;