sub chain { return @_ > 1 ? { shift() => chain(@_) } : shift(); }