1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use strict; use warnings; use feature qw(say); my $data = { very => { deep => { hash => { structure => 1, }, }, } }; # gibt "undef" zurück my $var1 = $data->{very}{deep}{hash}{fail}; # setzt Default aber viel Redundanz im Code my $var2 = exists $data->{very}{deep}{hash}{fail} ? $data->{very}{deep}{hash}{fail} : 'kein Eintrag'; say "var1 -> $var1"; say "var2 -> $var2";
1
2
3
4
$ perl h.pl
Use of uninitialized value $var1 in concatenation (.) or string at h.pl line 23.
var1 ->
var2 -> kein Eintrag
my $var1 = $data->{very}{deep}{hash}{fail} // 'not defined';
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#! /usr/bin/perl use strict; use warnings; use Data::Dumper; # hier definieren wir die Datenstruktur my $data = { foo => {}, }; my $var = $data->{foo}{bar}{baz}{barum} // 'not defined'; print "var: $var\n"; # und hier kontrollieren wir die Datenstruktur nochmal: print Data::Dumper->new( [ $data ], '*data' )->Sortkeys(1)->Dump();
2014-09-23T10:25:29 borisd