+-----------+ +-----------+
| 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);
##
##
$address{Bernd} = 'Bernd Dulfer|Kapellenstr. 1|bdulfer@sybase.com';
$email = (split(/\|/, $address{bernd}))[2];
##
##
$name{Bernd} = 'Bernd Dulfer';
$str{Bernd} = 'Kapellenstr. 1';
$email{Bernd} = 'bdulfer@sybase.com';
print_address($name{Bernd}, $str{Bernd});
##
##
+----------\
| address >
+----------/
|
+#######################+
+"""""""""""""""""""""""+
+-----------\ +---------+
| Bernd >| O----+----->+##################################+
+-----------/ +---------+ +""""""""""""""""""""""""""""""""""+
+-----------\ +--------------------+
| Name >| Bernd Dulfer |
+-----------< +--------------------+
| Str >| Kapellenstr. 1 |
+-----------< +--------------------+
| EMail >| bdulfer@sybase.com|
+-----------/ +--------------------+
$address{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com'
};
$email = $address{Bernd}->{EMail};
print_address($address{Bernd});
##
##
+----------\
| address >
+----------/
|
+##########+
+""""""""""+
+----\ +---+
|Bernd>| O-+->+###########################+
+----/ +---+ +"""""""""""""""""""""""""""+
+------\ +------------------+
|Name >|Bernd Dulfer |
+------< +------------------+
|Str >|Kapellenstr. 1 |
+------< +------------------+
|EMail >|bdulfer@sybase.com|
+------< +------------------+
|Books >| O---------+->+#####################+
+------/ +------------------+ +"""""""""""""""""""""+
|Lord of the Rings |
+---------------------+
|Hitchhikers Guide ...|
+---------------------+
|The Color of Magic |
+---------------------+
$address{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com',
Books => [
'Lord of the Rings',
'Hitchhikers Guide to the Galaxy',
'The Color of Magic'
]
};
##
##
$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]
or
$$aref[1]
##
##
$address{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com',
Books => [
'Lord of the Rings',
'Hitchhikers Guide to the Galaxy',
'The Color of Magic'
]
};
print 'Name: ', $address{Bernd}->{Name}, "\n";
##
##
Name: Bernd Dulfer
##
##
$address{Bernd}->{Books}->[3] = 'Goedel, Escher, Bach - An Eternal Golden Braid';
##
##
push @{$address{Bernd}->{Books}}, 'Icerigger';
##
##
%authors = (
Tolkien => [
'The Silmarillion',
'Unfinished Tales'
],
Pratchett => [;
'Guards! Guards!',
'Feet of Clay'
]
)
##
##
$address{Bernd}->{Authors} = \%authors;
##
##
push @{$authors{Tolkien}}, 'The Hobbit';
##
##
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %address;
$address{Bernd} = {
Name => 'Bernd Dulfer',
Str => 'Kapellenstr. 1',
EMail => 'bdulfer@sybase.com',
Books => [
'Lord of the Rings',
'Hitchhikers Guide to the Galaxy',
'The Color of Magic'
]
};
$address{Bernd}->{Books}->[3] = 'Goedel, Escher, Bach - An Eternal Golden Braid';
push @{$address{Bernd}->{Books}}, 'Icerigger';
$address{Bernd}->{Authors}->{Tolkien} = ['Silmarillion', 'Unfinished Tales'];
print Dumper(\%address);
##
##
$VAR1 = {
'Bernd' => {
'Authors' => {
'Tolkien' => [
'Silmarillion',
'Unfinished Tales'
]
},
'Books' => [
'Lord of the Rings',
'Hitchhikers Guide to the Galaxy',
'The Color of Magic'
'Gödel, Escher, Bach - An Eternal Golden Braid',
'Icerigger'
],
'EMail' => 'bdulfer@sybase.com',
'Str' => 'Kapellenstr. 1',
'Name' => 'Bernd Dulfer'
}
};
##
##
#Short Name Str EMail Books
Bernd |Bernd Dulfer |Kapellenstr. 1 |bdulfer@sybase.com |(Lord of the Rings|Hitchhikers Guide ...|The Color of Magic)
Bilbo |Bilbo Baggins |Bagend | |(The Red Book)
##
##
1: my %addresses;
2:
3: open ADDRESSES, 'addresses.dat' or die "Cannot open addresses.dat: $!\n";
4: while () {
5: next if /^#/;
6: my ($short, $name, $str, $email, $books) = split(/\s*\|/, $_, 5);
7: $addresses{$short} = {
8: Name => $name,
9: Str => $str,
10: EMail => $email
11: };
12: $books =~ tr/()//d;
13: push @{$addresses{$short}->{Books}}, split /\|/, $books;
14: }
15: close ADDRESSES;
##
##
foreach (@{$address{Bernd}->{Books}}) {
print $_, "\n";
}
##
##
foreach (keys %{$address{Bernd}->{Authors}}) {
print $_, "\n";
foreach (@{$address{Bernd}->{Authors}->{$_}}) {
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);