The constructor is not automatically created for you, which is why Perl complains it can't locate the method 'new'. Doing OO in Perl is kind of clunky, which is why most people like to use packages like Moose or Moo or any one of several others. Many of them do things like automatically creating constructors, getters and setters, and handling alot of the overhead issues for you.
This comes with a cost of added complexity, but if you're really going to code OO in Perl, it is worth your time to invest in learning. You will get that time back multiplied many times in coding and maintenance.
But God demonstrates His own love toward us, in that while we were yet sinners, Christ died for us. Romans 5:8 (NASB)