Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f0e44630

Von Bernd Bleßmann vor etwa 4 Jahren hinzugefügt

  • ID f0e446302ba371a2fd371a7f15168d3c125cbf3f
  • Vorgänger 29bed1cf
  • Nachfolger a4bbdc71

S:C:H:ReportGenerator: Spalteninformationen einzeln zuweisen.

Hintergrund: Das "fat-comma (=>)" interpretiert seine rechte Seite im
Listenkontext, was dazu führen kann, dass der Hash, der aufgebaut werden
soll, durcheinander gerät, wenn z.B. $def->{sub} eine Liste zurückliefert
oder gar nichts ($def->{sub} = sub { return }).

Interessant im Zusammenhang:
https://stackoverflow.com/questions/3435122/whats-the-difference-between-return-and-return-undef-in-perl

Unterschiede anzeigen:

SL/Controller/Helper/ReportGenerator.pm
for my $obj (@{ $params{objects} || [] }) {
my %data = map {
my $def = $column_defs->{$_};
$_ => {
raw_data => $def->{raw_data} ? $def->{raw_data}->($obj) : '',
data => $def->{sub} ? $def->{sub}->($obj)
: $obj->can($_) ? $obj->$_
: $obj->{$_},
link => $def->{obj_link} ? $def->{obj_link}->($obj) : '',
},
my $tmp;
$tmp->{raw_data} = $def->{raw_data} ? $def->{raw_data}->($obj) : '';
$tmp->{data} = $def->{sub} ? $def->{sub}->($obj)
: $obj->can($_) ? $obj->$_
: $obj->{$_};
$tmp->{link} = $def->{obj_link} ? $def->{obj_link}->($obj) : '';
$_ => $tmp;
} @columns;
$params{data_callback}->(\%data) if $params{data_callback};

Auch abrufbar als: Unified diff