Thread Haltbarkeit von $_[0] (9 answers)
Opened by bianca at 2010-04-02 08:36

bianca
 2010-04-02 08:36
#135611 #135611
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Allgemeine Frage:
Wenn ich Parameter in eine sub übergebe, wie lange hält sich dort ein Wert in $_[0]?
Ist er solange haltbar, bis ich aus der sub eine weitere sub aufrufe oder ist er in dem Skope für immer haltbar?

Ich sehe in den meisten Programmen immer, dass diese Werte meist am Anfang der sub in lokale Variablen übernommen werden. Daraus schließe ich, dass sie ansonsten irgendwann nicht mehr in $_[0] zur Verfügung stehen würde.
Daher die Frage.
Als Vergleich: $1 aus einem Regex ist ja auch nur bis zum nächsten erfolgreichen Regex match haltbar und wird dann neu belegt.
Das meine ich mit der Frage.

Habe hier nämlich eine Sache, wo ich in eine sub je nach Anwendung an manchen Positionen andere Werte übergebe. Soll heißen, $_[3] enthält manchmal einen Dateinamen als String und manchmal einen Hash á la %{$_[3]}. Abhängig immer vom Wert in $_[0] der immer ein String ist. Und damit ich in der sub je Anwendung nicht zweimal verästeln muss (einmal oben für die Variablenzuordnung und einmal weiter unten für die Abarbeitung) möchte ich am liebsten oben garnicht die Variablen übernehmen sondern auch viel später noch z.B. mit $_[3] arbeiten. Und dafür würde ich gern genau wissen, wovon es abhängt, ob da noch die ursprünglich übergebenen Werte erhalten sind.

Danke Euch

Edit: Vergleich mit $1 korrigiert
Last edited: 2010-04-02 11:45:43 +0200 (CEST)
10 print "Hallo"
20 goto 10

View full thread Haltbarkeit von $_[0]