in reply to Re: Building modules, my mental block
in thread Building modules, my mental block

That is correct. You should use :: and not -> if you want to invoke a subroutine directly, and not as a class method. If you want to invoke it as a class method, you'll need to handle the extra parameter as described above

However, I think the error you're getting is generated by the line my $username = STDIN; As written, that statement attempts to call a (nonexistent) subroutine called STDIN. What you probably meant was my $username = <STDIN>; or even  my $username = <>; which reads a line from a filehandle