in reply to validations in perl

!= is the "not numerically equal" operator. You probably meant !~, the negation of the binding operator.

Morevoer, =! is an assignment followed by a negation. It seems you wanted !~ again.

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]