Hallo pl,
Eine Funktion ist unabhängig von einem Objekt oder einer Klasse.
In Perl ist das nicht zutreffend.
Doch, ist es. Du kannst in Perl eine Funktion ggfls. auch als Methode nutzen, aber sie muss damit umgehen können und um den Umstand wissen.
Da gibt es nämlich immer eine Klasse main und eine Klasse von der alle Klassen erben (UNIVERSAL).
Du wirfst Package und Class durcheinander. Und nein, das ist nicht dasselbe. Aus der Perldoc: „In Perl, any package can be a class. The difference between a package which is a class and one which isn't is based on how the package is used.“ – Hervorhebung von mir. Nur weil das Keyword package
dort steht ist es keine Klasse. Und umgekehrt, nur weil das Keyword package
dort steht ist es nicht keine Klasse.
Da kann man sogar Builtinfunktionen überlagern weil das eben auch Methoden sind.
Du kannst sie überschreiben, weil Perl eine dynamische Sprache ist.
Freundliche Grüße,
Christian Kruse