Tal como todos te dijeron en el última pregunta que hiciste , inicialice su matriz con paréntesis, no con corchetes anidados.
@some_array= ([sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny])
no
@some_array= [[sam, jon, july],[Mike, Han,Tommy],[angie, sita, lanny]]
También se beneficiaría enormemente de incluir
use strict;
use warnings;
en la parte superior de todos sus programas. Eso captaría la extraña forma en que intenta inicializar @some_array , y detectaría su uso inconsistente de @sql y @query . actualizar y $sdh y $db y $dbh .