sub operate (&@) { my $sub = shift; local $~; $~ = &$sub($_) for @_; return $~ }