use Data::Dumper; my $inp = 'AAA * BBB CCC * * "2000 01 00 00 00" "2004 01 00 00 00"'; $inp =~ s/(\d) (\d)/$1-$2/g; my @fields = split /\s+/, $inp; print Dumper(\@fields); #### $VAR1 = [ 'AAA', '*', 'BBB', 'CCC', '*', '*', '"2000-01-00-00-00"', '"2004-01-00-00-00"' ];