How do I apply ‘use base’ in Perl to inherit subs from some base module?
I’m used to C++ inheritance mechanics, and all the sites I googled for this caused more confusion then help. I want to do something like the following:
#! /usr/bin/perl #The base class to inherit from use strict; use warnings; package 'TestBase'; #------------------------------- sub tbSub { my ($self, $parm) = @_; print '\nTestBase: $parm\n'; } 1;
.
#! /usr/bin/perl #The descendent class use strict; use warnings; use base qw(TestBase); sub main; sub mySub; #------------------------------- #Entry point... main(); #---code------------------------ sub main { mySub(1); tbSub(2); mySub(3); } #------------------------------- sub mySub { my $parm = shift; print '\nTester: $parm\n'; }
Perl complains/cannot find tbSub.
The C++ mechnics aren’t much different than the Perl mechanics: To use inheritance, you need two classes: the base class and the inheriting class. But you don’t have any descendent class.
You are also lacking a constructor. Unlike C++, Perl will not provide a default constructor for you.
Your base class contains a bad syntax error, so I guess you didn’t try the code before posting.
Finally, as tsee already observed, you will have to let Perl know whether you want a function call or a method call.
What you really want would look something like this: