local $/ = ""; # Paragraph mode. my $newest_ver; my $newest_date; my $oldest_ver; my $oldest_date; while () { next unless /^(\d\S*)/; my $ver = $1; next unless /^date ([^\s;]+)/m; my $date = $1; if (not defined $oldest_ver) { $newest_ver = $oldest_ver = $ver; $newest_date = $oldest_date = $date; next; } if ($date lt $oldest_date) { $oldest_ver = $ver; $oldest_date = $date; } else { $newest_ver = $ver; $newest_date = $date; } } if (defined $oldest_date) { print("oldest: $oldest_ver on $oldest_date\n"); print("newest: $newest_ver on $newest_date\n"); } else { print("No data found\n"); }