use strict; use warnings; use Data::Dumper; my $line = "A::B:123-456 hh:mm:C::D:789"; my @array = split /:/, $line; print Dumper \@array; splice @array, 3, 2, join( ":", @array[ 3..4 ] ) ; print Dumper \@array;