use strict; use warnings; my @yrArr = ( 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2002, 2004, 2005, 2006, 2007, 2008, ); my $yrStr = join q{, }, @yrArr; $yrStr =~ s{(\d+), (?=(\d+))}{ $2 - $1 == 1 ? qq{$1-} : qq{$1, } }eg; $yrStr =~ s{(-\d+)+(?=-)}{}g; print qq{$yrStr\n}; #### 1992, 1994-1995, 1997-2000, 2002, 2004-2008