#!/usr/bin/perl use warnings; use strict; my $previous_num = -1; my $previous_line; my $print_next = 0; sub output { my $num = shift; my $adjacent = abs($previous_num - $num) == 1; if ($print_next || $adjacent) { print $previous_line; $print_next = $adjacent; } } while (<>) { my ($num) = /([0-9]+$)/; output($num); $previous_num = $num; $previous_line = $_; } output($previous_num); # Process the last line.