for(qw(J A P H)){eval qq.sub $_..q.{..($.?$..q.++$_[$[].:q.chop [caller $_[$[]]->[!$||$^F].).q.}GM.,$.=$_}print J(),A(),P(),H()