The join function doesn't use patterns but performs the opposite function of split: split breaks up a string into a number of pieces, and join glues together a bunch of pieces to make a single string. The join function looks like this:
my $result = join $glue, @pieces;
The first argument to join is the glue, which may be any string. The remaining arguments are a list of pieces. join puts the glue string between the pieces and returns the resulting string:
my $x = join ":", 4, 6, 8, 10, 12; # $x is "4:6:8:10:12"
In that example, we had five items, so there are only four colons or four pieces of glue. The glue shows up only between the pieces, never before or after them. So, there will be one fewer piece of glue than the number of items in the list.
This means there may be no glue at all if the list doesn't have at least two elements:
my $y = join "foo", "bar"; # gives just "bar", since no fooglue is needed my @empty; # empty array my $empty = join "baz", @empty; # no items, so it's an empty string
Using $x from above, we can break up a string and put it back together with a different delimiter:
my @values = split /:/, $x; # @values is (4, 6, 8, 10, 12) my $z = join "-", @values; # $z is "4-6-8-10-12"
Though split and join work well together, don't forget that the first argument to join is always a string, not a pattern.