+-----------+ +-----------+
| O-----+----->| 12345 |
+-----------+ +-----------+
####
+----------\ +----------\
| a > | b >
+----------/ +----------/
| |
+-----------+ +-----------+
| O-----+----->| 12345 |
+-----------+ +-----------+
##
##
+----------\
| b > +----------\
+----------/ | a >
| +----------/
+-----------+ |
| O-----+----->+###########+
+-----------+ +"""""""""""+
| Foo |
+----------\ +-----------+
| c > | Bar |
+----------/ +-----------+
| | Baz |
+-----------+ +-----------+
| O-----+----->| Qux |
+-----------+ +-----------+
##
##
+----------\
| a > +-->+###########+
+----------/ | +"""""""""""+
| | | Foo |
+-----------+ | +-----------+
| O-----+----->+###########+ | | Bar |
+-----------+ +"""""""""""+ | +-----------+
| O-----+---+
+-----------+
| O-----+------>+###########+
+-----------+ +"""""""""""+
| O-----+---+ | Baz |
+-----------+ | +-----------+
| | Qux |
| +-----------+
|
|
+-->+###########+
+"""""""""""+
| Baz |
+-----------+
##
##
+----------\
| a > +-->+###########+
+----------/ | +"""""""""""+
| | | Foo |
+#########################+ | +-----------+
+"""""""""""""""""""""""""+ | | Bar |
+-----------\ +-----------+ | +-----------+
| aaa >| O-----+---+
+-----------< +-----------+
| bbb >| O-----+------>+###########+
+-----------< +-----------+ +"""""""""""+
| ccc >| O-----+---+ | Baz |
+-----------/ +-----------+ | +-----------+
| | Qux |
| +-----------+
|
|
+-->+###########+
+"""""""""""+
| Baz |
+-----------+
##
##
$aref = [123, 456, 789];
##
##
$href = {NAME => 'Bernd', EMAIL => 'bdulfer@sybase.com'};
##
##
$fref = sub { print "AnonSub\n" };
##
##
use Data::Dumper;
sub make_hash_from_arrays {
my ($aref1, $aref2) = @_;
my %hash;
$hash{$_} = shift @$aref2 foreach (@$aref1);
print Dumper(\%hash);
}
my @a = ('a', 'b', 'c', 'd');
my @b = (1, 2, 3, 4);
make_hash_from_arrays(\@a, \@b);
##
##
$adresse{Bernd} = 'Bernd Dulfer|Kapellenstr. 1|bdulfer@sybase.com';
$email = (split(/\|/, $adresse{bernd}))[2];
##
##
$name{Bernd} = 'Bernd Dulfer';
$str{Bernd} = 'Kapellenstr. 1';
$email{Bernd} = 'bdulfer@sybase.com';
print_adresse($name{Bernd}, $str{Bernd});
##
##
+----------\
| adresse >
+----------/
|
+#######################+
+"""""""""""""""""""""""+
+-----------\ +---------+
| Bernd >| O----+----->+##################################+
+-----------/ +---------+ +""""""""""""""""""""""""""""""""""+
+-----------\ +--------------------+
| Name >| Bernd Dulfer |
+-----------< +--------------------+
| Str >| Kapellenstr. 1 |
+-----------< +--------------------+
| EMail >| bdulfer@sybase.com|
+-----------/ +--------------------+
$adresse{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com'
};
$email = $adresse{Bernd}->{EMail};
print_adresse($adresse{Bernd});
##
##
+----------\
| adresse >
+----------/
|
+##########+
+""""""""""+
+----\ +---+
|Bernd>| O-+->+###########################+
+----/ +---+ +"""""""""""""""""""""""""""+
+------\ +------------------+
|Name >|Bernd Dulfer |
+------< +------------------+
|Str >|Kapellenstr. 1 |
+------< +------------------+
|EMail >|bdulfer@sybase.com|
+------< +------------------+
|Buecher>| O---------+->+#####################+
+------/ +------------------+ +"""""""""""""""""""""+
|Der Herr der Ringe |
+---------------------+
|Per Anhalter durch...|
+---------------------+
|Die Farben der Magie |
+---------------------+
$adresse{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com',
Buecher => [
'Der Herr der Ringe',
'Per Anhalter durch die Galaxie',
'Die Farben der Magie'
]
};
##
##
$s = 'qwertz';
$sref = \$s;
print ${$sref}, "\n";
print $$sref, "\n";
##
##
qwertz
qwertz
##
##
$, = ':';
@a = (123, 456, 789);
$aref = \@a;
print @{$aref}, "\n";
print @$aref, "\n";
##
##
123:456:789
123:456:789
##
##
${$aref}[1]
oder
$$aref[1]
##
##
$adresse{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com',
Buecher => [
'Der Herr der Ringe',
'Per Anhalter durch die Galaxie',
'Die Farben der Magie'
]
};
print 'Name: ', $adresse{Bernd}->{Name}, "\n";
##
##
Name: Bernd Dulfer
##
##
$adresse{Bernd}->{Buecher}->[3] = 'Goedel, Escher, Bach - Ein endlos geflochtenes Band';
##
##
push @{$adresse{Bernd}->{Buecher}}, 'Die Eissegler von Tran-ky-ky';
##
##
%autoren = (
Tolkien => [
'Das Silmarillion',
'Nachrichten aus Mittelerde'
],
Pratchett => [;
'Wachen, Wachen!',
'Tönerne Füße'
]
)
##
##
$adresse{Bernd}->{Autoren} = \%autoren;
##
##
push @{$autoren{Tolkien}}, 'Der Kleine Hobbit';
##
##
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %adresse;
$adresse{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com',
Buecher => [
'Der Herr der Ringe',
'Per Anhalter durch die Galaxie',
'Die Farben der Magie'
]
};
$adresse{Bernd}->{Buecher}->[3] = 'Gödel, Escher, Bach - Ein endlos geflochtenes Band';
push @{$adresse{Bernd}->{Buecher}}, 'Die Eissegler von Tran-ky-ky';
$adresse{Bernd}->{Autoren}->{Tolkien} = ['Silmarillion', 'Unfinished Tales'];
print Dumper(\%adresse);
##
##
$VAR1 = {
'Bernd' => {
'Autoren' => {
'Tolkien' => [
'Silmarillion',
'Unfinished Tales'
]
},
'Buecher' => [
'Der Herr der Ringe',
'Per Anhalter durch die Galaxie',
'Die Farben der Magie',
'Gödel, Escher, Bach - Ein endlos geflochtenes Band',
'Die Eissegler von Tran-ky-ky'
],
'EMail' => 'bdulfer@sybase.com',
'Str' => 'Kapellenstr. 1',
'Name' => 'Bernd Dulfer'
}
};
##
##
#Kürzel Name Str EMail Buecher
Bernd |Bernd Dulfer |Kapellenstr. 1 |bdulfer@sybase.com |(Der Herr der Ringe|Per Anhalter ...|Die Farben der Magie)
Bilbo |Bilbo Beutlin |Beutelsend | |(Das Rote Buch des Hobbits)
##
##
1: my %adressen;
2:
3: open ADRESSEN, 'adressen.dat' or die "Konnte Datei adressen.dat nicht öffnen: $!\n";
4: while () {
5: next if /^#/;
6: my ($kuerzel, $name, $str, $email, $buecher) = split(/\s*\|/, $_, 5);
7: $adressen{$kuerzel} = {
8: Name => $name,
9: Str => $str,
10: EMail => $email
11: };
12: $buecher =~ tr/()//d;
13: push @{$adressen{$kuerzel}->{Buecher}}, split /\|/, $buecher;
14: }
15: close ADRESSEN;
##
##
foreach (@{$adresse{Bernd}->{Buecher}}) {
print $_, "\n";
}
##
##
foreach (keys %{$adresse{Bernd}->{Autoren}}) {
print $_, "\n";
foreach (@{$adresse{Bernd}->{Autoren}->{$_}}) {
print "\t", $_, "\n";
}
}
##
##
Package Mod;
my $callback;
sub set_callback {
$callback = shift;
}
sub do_something {
do_this();
do_that();
&$callback;
do_something_else();
}
.
.
.
1;
__END__
#!/usr/bin/perl
use strict;
use warnings;
use Mod;
Mod::set_callback(\&print_rubbish);
Mod::do_something();
sub print_rubbish (
print "Rubbish!\n";
}
##
##
%dispatch = (
insert => \&insert,
update => \&update,
delete => \&delete
)
$dispatch{$token}->($query);