use strict; use warnings; use Data::Dumper; my @strings = (   'Die Angela "Koenigin von Berlin" Merkel ...',   'Die Angela "Koenigin von Berlin" ...',   'Die "Koenigin von Berlin" Merkel ...',   'Die "Angela" Koenigin von Berlin "Merkel" ...' ); print "--------> BEISPIEL 1\n"; # wenn du "Die Angela" ebenfalls durch Whitespaces trennen moechtest for my $text (@strings) {   my @result;   for my $splitted (split /(".+?")/, $text) {      if ($splitted =~ /^".+"$/) {         $splitted =~ s/"//g;         push @result, $splitted;      } else {         push @result, split /\s+/, $splitted;      }   }   print Dumper(\@result); } print "\n--------> BEISPIEL 2\n"; # wenn du "Die Angela" nicht durch Whitespaces trennen moechtest for my $text (@strings) {   my @result;   for my $splitted (split /(".+?")/, $text) {      $splitted =~ s/"//g;      push @result, $splitted;   }   print Dumper(\@result); }