Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Leeres Hash in Perl

Empfohlene Antworten

Veröffentlicht

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?

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

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.

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.