in reply to iterating through array and saving matches to new array

Probably what you wanted is "my @newa;" instead of "our @newa;". "our" is a special thing usually seen in a module. Read perl doc our for more info. In a module, a my variable cannot be exported, but an our variable can be.

Yes, grep is the right tool here. I personally prefer the block form of grep and map.

my @a = 1..1000; my @newa = grep{$_>850}@a;
Grep is a "filter" operation.