#!/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 = '
' . "\n"
. '| '
. $self->name
. ' |
' . "\n";
$o .= '| '
. $_
. ' |
'
. "\n" for @{$self->attributes};
$o .= '
' . "\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;