Schrift
[thread]11084[/thread]

Variable aus einer anderen sub übernehmen?



<< >> 7 Einträge, 1 Seite
Gast Gast
 2007-12-30 23:57
#104288 #104288
Hallo,

ist es möglich, beispielsweise my $foo = "x" aus sub 1 in sub 2 zu übernehmen?

Z.B. so:

sub foo
{
my $foo = "x";
........
}

sub bar
{
my $bar = $foo
.......
}

Wie kann ich nun $bar mit dem Inhalt aus $foo füllen?

Danke schonmal.
Struppi
 2008-12-31 00:20
#104289 #104289
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Nein, das geht nicht.
lichtkind
 2008-12-31 00:37
#104291 #104291
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
du kannst ausserhalb der subs eine variable mit our deklarieren die dann im kanzen package oder ganzen script bekannt ist.

du kannst das our auch weglassen, aber solche globale variablen sollte man vermeiden
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
ptk
 2008-12-31 01:04
#104294 #104294
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Die Deklaration muss man nicht unbedingt außerhalb machen, man kann sie auch in jedem Scope wiederholen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use strict;

sub foo {
our $bla = 1;
}

sub bar {
our $bla;
print $bla, "\n";
}

foo();
bar();
Struppi
 2008-12-31 01:18
#104297 #104297
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Die Frage die ich mir stelle ist, wozu brauchst man das? (nicht our, sondern den Zugriff auf eine lokale Funktionvariabel)
Gast Gast
 2008-12-31 01:33
#104298 #104298
Ich hab mir ein Modul erstellt, in dem in mehreren Subs auf eine SQL Datenbank zugegriffen wird. Nur möchte ich nicht in den betreffenden Subs die Daten eingeben müssen, sondern in einer einzelnen sub ganz zu beginn des eigentlichen moduls die daten festlegen und innerhalb der anderen subs wieder darauf zugreifen.
Struppi
 2008-12-31 03:30
#104303 #104303
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Ja, das ist eine normale Vorgehensweise. Entweder nutzt du dazu Attribute die du deinem Objekt gibst oder du hast Modulweite Variabeln. Kommt drauf an ob das Modul ein Objekt hat das du mit bless erzeugst oder nicht.
<< >> 7 Einträge, 1 Seite



View all threads created 2007-12-30 23:57.