sub a { eval"sub'".pop().'{eval\'s/\'.(shift).\'/\'.(shift).\'/'.pop().';@_&&'.pop().'(@_)}'; @_&&a(@_) }