Leser: 1
![]() |
|< 1 2 >| | ![]() |
20 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/perl
use strict;
use warnings;
package Customer;
use Moose;
has 'name' => ( is => 'rw' );
has 'attributes' => ( is => 'rw', isa => 'ArrayRef' );
sub to_html_table {
my $self = shift;
my $o = '<table class="customer">' . "\n"
. '<tr><th class="name">'
. $self->name
. '</th></tr>' . "\n";
$o .= '<tr><td class="attribute">'
. $_
. '</td></tr>'
. "\n" for @{$self->attributes};
$o .= '</table>' . "\n" . "\n";
return $o;
}
package CustomerRecord;
use Moose;
has 'customers' => ( is => 'rw', isa => 'ArrayRef' );
sub add_customer {
my $self = shift;
push @{$self->{'customers'}}, shift @_ if @_;
}
sub to_html {
my $self = shift;
my $o;
$o .= $_->to_html_table for @{$self->{'customers'}};
return $o;
}
package main;
use YAML;
use Data::Dumper;
my $ref = [Load(<<'...')];
---
Kundenname: Meyer
Datensatz:
- DatensatzA 1
- DatensatzA 2
- DatensatzA 3
- DatensatzA 4
- DatensatzA 5
- DatensatzA 6
---
Kundenname: Müller
Datensatz:
- DatensatzB 1
- DatensatzB 2
- DatensatzB 3
---
Kundenname: Schulze
Datensatz:
- DatensatzC 1
- DatensatzC 2
- DatensatzC 3
- DatensatzC 4
- DatensatzC 5
- DatensatzC 6
- DatensatzC 7;
...
#print Dumper($ref);
my $record = CustomerRecord->new;
$record->add_customer(
Customer->new(
name => $_->{'Kundenname'},
attributes => $_->{'Datensatz'}
)
) for @$ref;
print $record->to_html;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/perl
use strict;
use warnings;
package Customer;
use Moose;
has 'name' => ( is => 'rw' );
has 'attributes' => ( is => 'rw', isa => 'ArrayRef' );
sub to_html_table {
my $self = shift;
my $o = '<table class="customer">' . "\n"
. '<tr><th class="name">'
. $self->name
. '</th></tr>' . "\n";
$o .= '<tr><td class="attribute">'
. $_
. '</td></tr>'
. "\n" for @{$self->attributes};
$o .= '</table>' . "\n" . "\n";
return $o;
}
package CustomerRecord;
use Moose;
has 'customers' => ( is => 'rw', isa => 'ArrayRef' );
sub add_customer {
my $self = shift;
push @{$self->{'customers'}}, shift @_ if @_;
}
sub to_html {
my $self = shift;
my $o;
$o .= $_->to_html_table for @{$self->{'customers'}};
return $o;
}
sub find {
my $self = shift;
my ($i, $k) = @_;
return $self->new(
customers => [ grep { $_->{$i} eq $k } @{$self->customers} ]
);
}
sub sort_in_order {
my $self = shift;
my ($order, $key) = @_;
die "unknown order for sort" unless $order eq 'asc' or $order eq 'desc';
return $self->new(
customers => $order eq 'asc' ?
[sort { $a->{$key} cmp $b->{$key} } @{$self->customers}] :
[sort { $b->{$key} cmp $a->{$key} } @{$self->customers}]
);
}
package main;
use YAML;
use Data::Dumper;
my $ref = [Load(<<'...')];
---
Kundenname: Meyer
Datensatz:
- DatensatzA 1
- DatensatzA 2
- DatensatzA 3
- DatensatzA 4
- DatensatzA 5
- DatensatzA 6
---
Kundenname: Müller
Datensatz:
- DatensatzB 1
- DatensatzB 2
- DatensatzB 3
---
Kundenname: Schulze
Datensatz:
- DatensatzC 1
- DatensatzC 2
- DatensatzC 3
- DatensatzC 4
- DatensatzC 5
- DatensatzC 6
- DatensatzC 7
...
#print Dumper($ref);
my $record = CustomerRecord->new;
$record->add_customer(
Customer->new(
name => $_->{'Kundenname'},
attributes => $_->{'Datensatz'}
)
) for @$ref;
print $record->to_html; # dump all as html
print $record->find(name => 'Müller')->to_html; # dump result as html
print Dump($record->find(name => 'Müller')); # dump to yaml
print Dumper Load (Dump($record->find(name => 'Müller'))); # load from yaml
print Dumper $record->sort_in_order( desc => 'name' ); # dump descending
QuoteDu hinterlegst ja auch immer wieder die gleiche Addresse, benutz doch einfach [@kundenMesArray].
1
2
3
4
5
6
7
while (my ($key, $value) = each(%kundenHash))
{
......
my $cntRef = $anderesHash{$key};
my @cntMsgArray = @$cntMsgRef;
......
}[
Quotefor (my $f = 0; $f < @fileNames; $f++)
{
......
my $cntRef = $anderesHash{$fileNames[$f]};
my @cntMsgArray = @$cntMsgRef;
......
}
QuoteCan't use an undefined value as an ARRAY reference at
1
2
3
4
5
6
7
for my $key (keys %anderesHash)
{
......
my $cntRef = $anderesHash{$key};
my @cntMsgArray = @$cntMsgRef;
......
}
1
2
3
4
5
6
7
for (my $f = 0; $f < @fileNames; $f++)
{
......
my $cntRef = $anderesHash{$fileNames[$f]};
my @cntMsgArray = @$cntMsgRef;
......
}
![]() |
|< 1 2 >| | ![]() |
20 Einträge, 2 Seiten |