Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
laziness, impatience, and hubris
 
PerlMonks  

How do I concatenate a string?

( #32418=categorized question: print w/ replies, xml ) Need Help??
Contributed by Anonymous Monk on Sep 14, 2000 at 06:54 UTC
Q&A  > strings


Answer: How do I concatenate a string?
contributed by ar0n

As merlyn so eloquently put it ;), use the '.' operator:

my $foo = "Foo"; my $bar = "Bar"; my $str = $foo . $bar; print $str;
Which of course will print "FooBar".
Answer: How do I concatenate a string?
contributed by davido

For simple concatenation,

my $foo = "Foo"; my $bar = "Bar"; my $string = $foo . $bar; # $string contains "FooBar".

For concatenating the new string to the end of the existing string (appending):

my $foo = "Foo"; my $bar = "Bar"; my $foo .= $bar; # $foo now contains "FooBar"

For concatenating multiple strings all at once, use join. Join is (according to the Camel book) the most efficient way to concatenate many strings together. Join can be used with a delimiter, or with a null string as the delimiter, so that nothing is inserted between the strings that are joined (concatenated) together.

my $this = "This"; my $that = "That"; my $the = "The"; my $other = "Other"; my $string = join "", $this, $that, $the, $other; # $string now contains "ThisThatTheOther".

Join can do a lot more than just simple concatenation. Whatever you put between the quotes will be inserted between the strings that are being joined together. Also, join can accept not just a list of scalar variables, but also an array, or a list of literal strings.

Answer: How do I concatenate a string?
contributed by merlyn

.

Answer: How do I concatenate a string?
contributed by toolic

Interpolation using double quotes, for example, (see Quote and Quote like Operators) can be used to concatenate 2 (or more) scalar variables into a 3rd scalar variable:

my $s1 = 'Perl'; my $s2 = 'Monks'; my $s3 = "$s1$s2"; print "$s3\n"; # $s3 contains 'PerlMonks'

or using this syntax:

my $s3 = "${s1}${s2}";

Interpolation of array variables can also be performed to concatenate all element of the array into a string. It is necessary to unset the LIST_SEPARATOR ($") special variable, and it is good practice to localize this change to its own block:

{ undef $"; my @strs = 'a' .. 'e'; my $s4 = "@strs"; print "$s4\n"; # $s4 contains 'abcde' }

Please (register and) log in if you wish to add an answer



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others pondering the Monastery: (6)
    As of 2014-04-20 09:24 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      April first is:







      Results (485 votes), past polls