in reply to why is a 2-argument bless not working in my situation

Your new method is being called as a class method, therefore the class is the first argument rather than the second. ie, the class is in $self.

I tried to swear at perl and it compiled!