in reply to grep {CONSTANT} @list

you are confusing a regex data-type with a regex operation.

grep {REGEXP} uses a code-block which returns a regex which is always true if defined.

grep {/string/} uses a m// (match operation) which defaults to test $_.

Cheers Rolf