At the moment it is not possible to make a new call at the end of a transformation. You need to do something like:
Hash($data.reduce |$memo, $entry| { ... })
because it is not possible to do this:
$data.reduce |$memo, $entry| { ... }).new(Hash)
What you want is the more natural left-to-right reading:
$data.reduce |$memo, $entry| { ... }.Hash
We don't have any plans on implementing this, so I'm going to close.