in reply to Re^6: reduce like iterators
in thread reduce like iterators

The issue isn't a missing + (which doesn't help parse the code correctly); the issue is that you didn't declare reduce (which has a prototype). Add

use List::Util qw( reduce );