my @previous; while(<>){ chomp; my @current = split /,/, $_; if ( not @previous ) { print join ',', @current[ 1 .. $#current ]; print "\n"; } else { for my $i ( 1 .. ( $#current - 1 ) ) { print $current[$i], '-', $previous[$i], ','; } print $current[-1], '-', $previous[-1], "\n"; @previous = @current; } }