in reply to hash "member" of a module

bless \$self;

Here, you're blessing a reference to a hash reference. You want to bless the hash reference instead:

bless $self;

Also, you will likely want to make your class subclassable, so use the two-argument form of bless:

sub new { my ($class) = @_; my $self = {}; $self->{data} = {}; $self->{data}->{start_url} = "https://www.w.com/home.html"; bless $self, $class; }

Also, I've removed the parentheses from the subroutine declaration, as methods ignore any declared prototypes.