Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe ein Problem in Perl.

Ich muß ein neues leeres Hash erzeugen, damit ich eine leere Hashreferenz daraus machen kann.

undef funktioniert nicht. Und ein leeres namentliches Hash zuübergeben funktioniert auch nicht, da daraus sofort eine Referenz erzeugt wird.

Wie kann ich ein leeres Hash erzeugen, sozusagen der Initialwert eines Hash?

Geschrieben

Hi.

Ich würd dir gerne helfen, aber ich weiss nicht ganz genau was du meinst ?!?

Willst du einen Hash initilisieren ?

Was passiert denn wenn du:

my %hash;

machst ? Dann hast du doch einen leeren Hash (also mit lauter undef`s initialisiert) oder ?

cu

alligator

Geschrieben

ich kann nicht my %hash benutzen.

Ich will in einer Schleife immer wieder eine leere Hash-Referenz erzeugen.

Deshalb kann ich nicht my %hash benutzen, da dann jedes Mal wieder auf das gleiche Hash verweisst.

Genau das soll ja nicht passieren.

Es gibt so einen Befehl. Ich weiß, dass ich das schon mal gelesen habe, aber ich finde es nicht wieder.

Auf jeden Fall nicht in den Büchern die ich bei mir habe.

Geschrieben

Servus.

Idee:

for ($i;$i<100;$i++)

{

my $name = "hash".$i;

my %$name;

}

Habs nicht getestet, aber so wäre mein Ansatz, wobei ich aber nicht ganz kapiere wozu du das brauchen könntest?!? Wenn du die Variable global machen willst, dann mach anstatt "my" lieber "our" ...

cu

alligator

Geschrieben

Servus.

Hab vergessen was wegen Referenzen zu sagen ...

Bsp:

%tiere = ( 'Tiger' => 'Indien', 'Löwe' => 'Afrika' );

$ref_hash = \%tiere;

So macht man Referenzen.

Aber gibt es leere Refrenzen ? Bzw. was bringen sie dir ?

my %hash;

$ref1 = \%hash;

$ref2 = \%hash;

....

# Das in Kombination mit der Schleife von vorher halt

Die Referenz wäre ja nicht leer, so zeigt sie auf %hash. Zwar ist %hash leer, aber das ist ja im Endeffekt worscht.

Hmm verstehe immernoch nicht den Sinn ...

cu

alligator

Geschrieben
Original geschrieben von alligator

my %hash;

$ref1 = \%hash;

$ref2 = \%hash;

....

# Das in Kombination mit der Schleife von vorher halt

Die Referenz wäre ja nicht leer, so zeigt sie auf %hash. Zwar ist %hash leer, aber das ist ja im Endeffekt worscht.

Das habe ich so auch probiert, aber sobald in $ref1 etwas hinzugefügt wird, ist auch etwas in $ref2 hinzugefügt (logisch, da beides auf %hash verweisst). Genau das soll nicht passieren.

Was bringen mir leere Referenzen.

A: Ich kann mit ihnen weiter arbeiten. Wenn ich die Varible nicht schon zu dem Zeitpunkt als Referenz erstelle, dann kommt später immer die Meldung, das es sich um eine Referenz handeln muss. "VALUE IS NOT A HASH-REFERENCE "(oder so ähnlich).

Ich habe mich aber jetzt entschlossen, das Problem irgendwie zu umgehen.

Trotzdem Danke

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...