¿Cómo aplico 'use base' en Perl para heredar subs desde algún módulo base?¿Cómo heredo las subrutinas en Perl con 'base de uso'?
Estoy acostumbrado a la mecánica de herencia C++, y todos los sitios que busqué en Google para esto causaron más confusión que ayuda. Quiero hacer algo como lo siguiente:
#! /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 se queja/no puede encontrar tbSub.
No, no termina así llamado - buscará la jerarquía de herencia por lo que puede llamar a un sub en un paquete completamente diferente. Además, sus ejemplos no son una sintaxis válida. (Sé lo que estabas tratando de decir, pero la forma en que lo dijiste confundirá a alguien tan confundido como el OP aún más). –
Por supuesto, anda por el árbol de la herencia. La pregunta es acerca de la herencia después de todo. Tenga en cuenta que el OP está acostumbrado a usar la herencia de C++, así que pensé que sería obvio. – tsee