Capisco che il modello OO di Perl sia piuttosto primitivo; è, per molti aspetti, essenzialmente un hack dello spazio dei nomi.Posso creare interfacce tipo Java in Perl?
Tuttavia, mi chiedo se sia possibile creare qualcosa come "un'interfaccia?" Il mio obiettivo è quello di avere una classe base da cui altri sono estesi il cui scopo principale è quello di rendere obbligatoria l'implementazione di determinati metodi (per nome va bene, nessuna firma necessaria) da quelle sottoclassi. Non mi interessa davvero se si tratta di una classe "puramente virtuale" (come una "interfaccia" in Java) o di una classe concreta con stub implementativi effettivi per quei metodi nella superclasse, ma ciò che voglio è rendere deterministicamente necessario che il la sottoclasse implementa determinati metodi della superclasse.
È possibile? Se é cosi, come?
L'OO di Perl non è primitivo, è solo un modo diverso di avvicinarsi al concetto. –
Penso che intendesse primitivo in termini di funzionalità offerte. OO ha alcuni principi guida e l'incapsulamento è uno di questi. Perl sta eseguendo (per la maggior parte del tempo) l'incapsulamento per convenzione, a meno che non si utilizzino le librerie più moderne, quindi sì, OO di Perl è primitivo, facendo affidamento sui futuri sviluppatori per mantenere la convenzione invece del rigoroso controllo del tempo di compilazione. Voglio dire, questa persona sta chiedendo un'interfaccia/classi virtuali pure, e non è lì senza estensioni. Questo non è "pienamente descritto". –