use strict; use warnings; my $events = <<'END_EVENTS'; d1:v1 d2:v2 d4:v4 d1:v1 d2:v2 d4:v4 END_EVENTS open my $eventsIn, '<', \$events or die "Failed to open event file: $!"; my $d2_value; my $d1_value; my @eventList; while (<$eventsIn>) { chomp; my $title; if (m/d1/i) { ($title, $d1_value) = split /:/; } elsif (m/d2/i) { ($title, $d2_value) = split /:/; } elsif (m/d4/i) { push @eventList, "$d1_value$d2_value\n"; } } close $eventsIn; print @eventList; #### v1v2 v1v2