package Bar; use Moose; sub bar { print "bar\n"; } package Foo; use Moose; sub foo { return [(Bar->new)x3]; # what magic do i need to apply here? } package main; Foo->new->foo->bar; #should print "bar\nbar\nbar\n" instead of failing with "Can't call method "bar" on unblessed reference"