in reply to new <class> or <class>->new()?

The argument is: new CGI; is potentially wrong, because it you have a subroutine new in your namespace, it calls that, and not the one in CGI.

However, if you write CGI->new, and you have a subroutine CGI, it will call that instead of new in the class CGI. So, if you want to avoid conflict, write

CGI::->new
will will call the method new in the class CGI, regardless whether you have subroutines new or CGI in your current class.