Join fixed text fields with a selected separator.

join-templates `join` creates predictable text from ordered fields.

Join Templates

style
join_templates.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my $style = "dash";
my $separator = "-";
if ($style eq "slash") {
    $separator = "/";
} elsif ($style eq "colon") {
    $separator = ":";
}
my $year = "2026";
my $month = "04";
my $day = "15";
my $date = join($separator, $year, $month, $day);

print "style=$style\n";
print "separator=$separator\n";
print "date=$date\n";
use strict;
use warnings;

my $style = "slash";
my $separator = "-";
if ($style eq "slash") {
    $separator = "/";
} elsif ($style eq "colon") {
    $separator = ":";
}
my $year = "2026";
my $month = "04";
my $day = "15";
my $date = join($separator, $year, $month, $day);

print "style=$style\n";
print "separator=$separator\n";
print "date=$date\n";
use strict;
use warnings;

my $style = "colon";
my $separator = "-";
if ($style eq "slash") {
    $separator = "/";
} elsif ($style eq "colon") {
    $separator = ":";
}
my $year = "2026";
my $month = "04";
my $day = "15";
my $date = join($separator, $year, $month, $day);

print "style=$style\n";
print "separator=$separator\n";
print "date=$date\n";
  1. $style ← dash, $separator ← -, $year ← 2026, $month ← 04, $day ← 15

    4my $style→ dash = "dash"; #@style="slash", "colon"5my $separator→ - = "-";6if ($style eq "slash") {7    $separator = "/";8} elsif ($style eq "colon") {9    $separator = ":";10}11my $year→ 2026 = "2026";12my $month→ 04 = "04";13my $day→ 15 = "15";14my $date→ 2026-04-15 = join($separator-, $year2026, $month04, $day15);1516print "style=$styledash\n";17print "separator=$separator-\n";18print "date=$date2026-04-15\n";
    outputstyle=dash
    separator=-
    date=2026-04-15
  1. $style ← slash, $separator ← -

    4my $style→ slash = "slash";5my $separator→ - = "-";6if ($style eq "slash") {
  2. $separator ← /

    5my $separator = "-";6if ($styleslash eq "slash") {7    $separator→ / = "/";8} elsif ($style eq "colon") {
  3. $year ← 2026, $month ← 04, $day ← 15, $date ← 2026/04/15

    10}11my $year→ 2026 = "2026";12my $month→ 04 = "04";13my $day→ 15 = "15";14my $date→ 2026/04/15 = join($separator/, $year2026, $month04, $day15);1516print "style=$styleslash\n";17print "separator=$separator/\n";18print "date=$date2026/04/15\n";
    outputstyle=slash
    separator=/
    date=2026/04/15
  1. $style ← colon, $separator ← -

    4my $style→ colon = "colon";5my $separator→ - = "-";6if ($style eq "slash") {
  2. $separator ← :

    7    $separator = "/";8} elsif ($stylecolon eq "colon") {9    $separator→ : = ":";10}
  3. $year ← 2026, $month ← 04, $day ← 15, $date ← 2026:04:15

    10}11my $year→ 2026 = "2026";12my $month→ 04 = "04";13my $day→ 15 = "15";14my $date→ 2026:04:15 = join($separator:, $year2026, $month04, $day15);1516print "style=$stylecolon\n";17print "separator=$separator:\n";18print "date=$date2026:04:15\n";
    outputstyle=colon
    separator=:
    date=2026:04:15