Hi Christoph,
Der "Code", also das Script, wird interpretiert, also Zeile für Zeiel ausgelesen und jede Zeiel wirkt als einzelner Befehl, der in Praxis umgesetzt werden soll
Stimmt meines Wissens leider auch nicht ganz. Perl arbeitet, genau wie Java, mit einer Virtual-Machine.
Dieses "genau wie JAVA" ist nicht richtig. JAVA benötigt kompilierten Code, ähnlich wie C/C++ (von dem es sehr viel übernommen hat).
Der Code für Java wird doch auch nicht richtig kompiliert oder? Der wird doch auch nur in Bytecode umgewandelt? Bei Perl ist das halt kein Bytecode, sondern Opcode, der allerdings vor jedem Aufruf neu erzeugt wird.
Wenn du eine JAVA-Applikation entwickelst, gehst du mindestens zwei Schritte: du erstellst ein Script, das zunächst gar nichts tut. Auf Grundlage dieses Scripts und der je nach Version vorhandenen Compilerbibliotheken stellt dann der Compiler Bytecode her, mit dem dann erst die virtuelle Maschine etwas anfangen kann. Dein Script kannst du, wenn alles funktioniert hat, wegwerfen.
Bei Perl wird wie oben gesagt, bei jedem Aufruf Opcode erstellt, dem Äquivalent [1] zu dem Bytecode von Java. Beides enthält Anweisungen, welche C-Routine jetzt aufgerufen werden soll.
Eine virtuelle Maschine, die mit der JVM vergleichbar wäre, gibt es nicht.
Doch gibt es eben, nur wird der Bytecode (wie es bei Java doch genannt wird) vor jedem aufruf erneut erzeugt, und die VM von Java ist, anders als die von Perl, die ganze Zeit geladen. Das ist doch genau das, was Perl im Vergleich zu Java langsam macht.
Grüße Andres Freund
[1] Tut mir lLeid, dass ich mich manchmal ein wenig schwammig ausdrücke aber mir fehlen leider noch die Grundlagen, alles genauer auszudrücken, da ich das ganze (noch) nur hobbymäßig neben der Schule lerne.
ss:) zu:) ls:} fo:) de:] va:) ch:| n4:& rl:° br:^ js:( ie:% fl:( mo:|