V Perle môžem spojiť viacero reťazcov s medzerami medzi nimi takto:
my $long_string = $one_string . " " . $another_string . " " . $yet_another_string . " " .
$and_another_string . " " $the_lastr_string
Napíšte to však je trochu ťažkopádne.
Existuje vstavaný nástroj, ktorý zjednoduší túto úlohu?
napr. niečo ako:
concatenate_with_spaces($one_string, $another_string, $yet_another_string, ...)
odpovede:
13 pre odpoveď č. 1Chceš join
:
my $x = "X";
my @vars = ( 1, "then", "some" );
my $long_string = join " ", $x, 2, @vars; # "X 2 1 then some"
9 pre odpoveď č. 2
Zaid dal idiomatické riešenie pomocou join
, Existuje však viac spôsobov, ako to urobiť.
my @vars = ($one, $two, $three);
my $str1 = "@vars"; # Using array interpolation
my $str2 = "$one $two $three"; # interpolating scalars directly
Interpolácia poľa používa preddefinovanú premennú $"
(zoznam separátor), ktorý je štandardne nastavený na medzeru. Pri interpolácii premenných nemusíte používať .
na spojenie medzier do vašich reťazcov, môžu byť použité priamo v dvojitom udanom reťazci.
4 pre odpoveď č. 3
my @list_of_strings = ($one_string, $two_strings );
my $string = join(" ", @list_of_strings );
print $string;