use strict; use Data::Dumper ; print "1ST TRY\n------\n" ; my @db_list_one = () ; my $text_one = q( SELECT * FROM SYNERGEN.SA_ASSET@/**/SGENQA/**/ ); my $matches_one = 0 ; my $start = '/\*\*/'; my $end = '/\*\*/'; if ( $text_one =~ m/$start(.*?)$end/i ) { push @db_list_one, $1; $matches_one++ ; } print Dumper( \@db_list_one ), "\n\n" ; #--------------------------------------- print "2ND TRY\n------\n" ; my @db_list_two = () ; my $text_two = q( SELECT * FROM SYNERGEN.SA_ASSET@/**/SGENQA/**/, SYNERGEN.SA_WORK_ORDER@/**/SGENTEST/**/ ); my $matches_two = 0 ; while ( $text_two =~ /$start(.*?)$end/gi ) { push @db_list_two, $1; $matches_two++ ; } print Dumper( \@db_list_two ), "\n\n" ;