use Data::Dumper;
my @array = (['a','b','c'],['d','e','f'],['g','h','i']);
my @index = map { $_ -> [0] } @array;
my @result = grep { $index[$_] =~ /g/ } 0..$#index;
my @result2 = grep { $array[$_][0] =~ /g/ } 0..$#array;
print Data::Dumper->Dump([\@array, \@result, \@result2], [qw(array result result2)]);