Split an ISO-style date string into scalar parts.

parse-date-parts Parsing fixed text into parts keeps later formatting explicit.

Parse Date Parts

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

my $date = "2026-04-15";
my ($year, $month, $day) = split /-/, $date;
my $summary = "$day/$month/$year";

print "date=$date\n";
print "year=$year\n";
print "month=$month\n";
print "summary=$summary\n";
use strict;
use warnings;

my $date = "2025-01-03";
my ($year, $month, $day) = split /-/, $date;
my $summary = "$day/$month/$year";

print "date=$date\n";
print "year=$year\n";
print "month=$month\n";
print "summary=$summary\n";
use strict;
use warnings;

my $date = "2027-12-20";
my ($year, $month, $day) = split /-/, $date;
my $summary = "$day/$month/$year";

print "date=$date\n";
print "year=$year\n";
print "month=$month\n";
print "summary=$summary\n";
  1. $date ← 2026-04-15, $year ← 2026, $month ← 04, $day ← 15, $summary ← 15/04/2026

    4my $date→ 2026-04-15 = "2026-04-15"; #@date="2025-01-03", "2027-12-20"5my ($year→ 2026, $month→ 04, $day→ 15) = split /-/, $date2026-04-15;6my $summary→ 15/04/2026 = "$day15/$month04/$year2026";78print "date=$date2026-04-15\n";9print "year=$year2026\n";10print "month=$month04\n";11print "summary=$summary15/04/2026\n";
    outputdate=2026-04-15
    year=2026
    month=04
    summary=15/04/2026
  1. $date ← 2025-01-03, $year ← 2025, $month ← 01, $day ← 03, $summary ← 03/01/2025

    4my $date→ 2025-01-03 = "2025-01-03";5my ($year→ 2025, $month→ 01, $day→ 03) = split /-/, $date2025-01-03;6my $summary→ 03/01/2025 = "$day03/$month01/$year2025";78print "date=$date2025-01-03\n";9print "year=$year2025\n";10print "month=$month01\n";11print "summary=$summary03/01/2025\n";
    outputdate=2025-01-03
    year=2025
    month=01
    summary=03/01/2025
  1. $date ← 2027-12-20, $year ← 2027, $month ← 12, $day ← 20, $summary ← 20/12/2027

    4my $date→ 2027-12-20 = "2027-12-20";5my ($year→ 2027, $month→ 12, $day→ 20) = split /-/, $date2027-12-20;6my $summary→ 20/12/2027 = "$day20/$month12/$year2027";78print "date=$date2027-12-20\n";9print "year=$year2027\n";10print "month=$month12\n";11print "summary=$summary20/12/2027\n";
    outputdate=2027-12-20
    year=2027
    month=12
    summary=20/12/2027