Interpretation eines Perl Scriptes

karmababy

Mitglied
Hallo,

ich habe gerade versucht mir Perl auf meinem Rechner zu installieren aber war dabei leider nicht sehr erfolgreich. Jetzt hab ich aber ein kleines Script von dem ich gern wüsste was genau da am Ende herauskommt.

HTML:
 #! /usr/bin/perl
 	 &A();
 	 sub B() {
 		 print $TextRef, “\n”;
 	 }
 	 sub A() {
 		 my $Text = ”Beispieltext”;
 		 $TextRef = $Text;
 		 &B();
 	 }

Ich habe mit Perl vorher noch nie gearbeitet ,Php ist mir da schon wesentlich bekannter. Ich vermute deswegen mal das nur das Wort Beispieltext ausgegeben wird und der Cursor dann in die nächste Zeile hüpft.
Wenn ich da total daneben liegen sollte würde ich mich freuen wenn es mir jemand besser erklären könnte. Auch würde ich mich freuen wenn man mich bestätigt.

Ich hoffe mal das sich jemand findet der mir da helfen kann.

mfg
karmababy
 
Du hast hier etwas redundanten Code geschrieben. subs lassen sich auch ohne Funktionsklammern implementieren, da es keine feste Parameterliste gibt: sub a {}
Auch wenn man eine Subroutine aufruft, reicht es, entweder Klammern an das Ende des Aufrufs zu setzen (subroutine();), oder ein & vor den Namen zu setzen: &subroutine;. Ich weiß auch nicht ganz, wieso du dich typografisch so anstellst, ganz normale Gänsefüße reichen. Am besten gewöhnst Du dir auch gleich an, sauber zu schreiben. Das kannst Du erreichen, indem Du ein
Code:
use strict;
use warnings;
unter die Interpreterzeile schreibst:

Code:
#!/usr/bin/perl
use strict;
use warnings;

# ...

Mehr fällt mir grade nicht ein, was ich sagen könnte. :)
 
Lustig das du das sagst.Ich habe den Code nämlich aus einer Klausur einfach herauskopiert. Da ich die Klausur Montag schreibe dachte ich das ich mein Ergebnis mal mit anderen vergleiche. Das der Code jetzt so nicht ok hätte ich natürlich nicht gedacht.
Also abgesehen davon das ich
use strict;
use warnings; einfüge, was genau muss denn noch geändert werden?
Funtkionert er denn überhaupt? Wäre nett wenn das mal jemand checken könnte.
Und zuletzt dann noch, was genau wird ausgegeben?

mfg
karmababy
 
Code:
 #!/usr/bin/perl
use strict;
use warnings;

&A;

sub B
{
    my $text = shift;
    print $text, "\n";
}

sub A
{
    my $text = "Beispieltext";
    &B($text);
}

So wäre das halbwegs sauberer Code. Und er würde, oh wunder, "Beispieltext" ausgeben. :)
 
Ich habe allerdings den Eindruck, daß mit diesem Programmbeispiel der Scope von Variablen und die Auswirkung von 'my' demonstriert werden soll. Daher der etwas unsinnige Aufbau.
 
Der Code ist schon richtig. Da sind syntaktisch keine Fehler drin. Allerdings sollte man es so machen wie Johannes es geschrieben hat.

Das my in dem ersten Codebeispiel hat fuer diesen Code keine Auswirkungen, da die Variable nur innerhalb der Methode verwendet wird. Die beiden Codestuecke machen nicht exakt das gleiche, da Johannes mit Uebergabeparametern arbeitet, der urspruengliche Code aber mit globalen Variablen (auch wenn die erst in einer Subroutine initialisiert werden).

Was hat bei der Installation von Perl nicht geklappt Welches Betriebssystem?

Fuer *nix sollte man mal auf perl.org schauen, fuer Windows empfiehlt sich ActivePerl von
http://www.activestate.com
 

Neue Beiträge

Zurück