Thread Hashreferenz auf Gültigkeit prüfen (9 answers)
Opened by Duff at 2008-08-01 13:58

renee
 2008-08-01 14:24
#112984 #112984
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ref( $hash_ref ) liefert Dir den Namen des Referenztyps (bei Objekten, den Klassennamen zu dem das Objekt gehört).

Code (perl): (dl )
1
2
3
4
5
6
7
print ref( \$scalar ); # SCALAR
print ref( {} ); # HASH
print ref( [] ); # ARRAY

print ref( \&subroutine ); # CODE

print ref( CGI->new ); # CGI


Ich überprüfe erst, ob $hash_ref einen "wahren" Wert zurückliefert. Danach, ob überhaupt ein "ref"-Ergebnis zurückkommt. Wenn Du einen String oder eine Zahl zurückliefern würdest, würde ref einen leeren String zurückliefern (print ref "test"; # nix). Wenn ref einen String liefert liefert, teste ich, ob es ein Hash ist (siehe Beispiele oben) und wenn es eine Hashreferenz ist, überprüfe ich noch, ob Schlüssel in dem Hash existieren.

So eine Überprüfung ist vor allem dann notwendig, wenn Du auf die Subroutine, die $hash_ref liefert keinen Einfluss hast (z.B. externe Module).
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Hashreferenz auf Gültigkeit prüfen