use strict; use warnings; use Data::Dumper; my $str = 'earth, wind & fire'; $str =~ s/([,&])/ $1 /g; my @arr = split /\s+/, $str; print Dumper(\@arr); __END__ $VAR1 = [ 'earth', ',', 'wind', '&', 'fire' ];