Wie kann ich nur bestimmte Keys zulassen
Inhalt:
Schlüssel von Anfang an einschränken
Es kann vorkommen, dass man nicht alles als Schlüssel in einem Hash erlauben will.
Dann gibt es die Möglichkeit, die Schlüssel einzuschränken:
#! /usr/bin/perl
use strict;
use Hash::Util qw(lock_keys);
my %hash = ();
my @valid_keys = qw(Erlaubt Auch_erlaubt);
lock_keys(%hash,@valid_keys);
$hash{Erlaubt} = 1;
$hash{Test} = 1;
$hash{Auch_erlaubt} = 1;
funktioniert nicht. Dabei kommt folgende Fehlermeldung:
Attempt to access disallowed key 'Test' in a restricted hash at locked.pl line 12.
erlaubte Schlüssel erst im Programm festlegen
Möchte man sich noch nicht vorher festlegen, welche Schlüssel man zulassen möchte (oder man weiß es vielleicht noch nicht), kann man das auch während dem Programmlauf locken:
#! /usr/bin/perl
use strict;
use Hash::Util qw(lock_keys);
my %hash = ();
$hash{Erlaubt} = 1;
$hash{Test} = 1;
$hash{Auch_erlaubt} = 1;
lock_keys(%hash);
Jetzt kann man nur noch die Schlüssel 'Erlaubt', 'Test' und 'Auch_erlaubt' verwenden...
Ergänzungen, Kommentare
KaiSengpiel - 07 Apr 2005 - Diese Möglichkeit besteht seit Perl v5.8