145 |
warn "## next row = ", dump( $row ) if $debug; |
warn "## next row = ", dump( $row ) if $debug; |
146 |
|
|
147 |
return sub { |
return sub { |
148 |
my $name = shift || die "no name?"; |
my ( $name, $delimiter ) = @_; |
149 |
|
# default delimiter is space |
150 |
|
$delimiter ||= ' '; |
151 |
|
die "no name?" unless $name; |
152 |
if ( defined $row->{$name} ) { |
if ( defined $row->{$name} ) { |
153 |
# XXX disabled, Template::Declare always want scalars :-( |
# XXX disabled, Template::Declare always want scalars :-( |
154 |
if ( 0 && wantarray ) { |
if ( 0 && wantarray ) { |
158 |
return [ $row->{$name} ]; |
return [ $row->{$name} ]; |
159 |
} |
} |
160 |
} else { |
} else { |
161 |
if ( ref($row->{$name}) eq 'ARRAY' ) { |
if ( ref($row->{$name}) eq 'ARRAY' && $delimiter ne 'ARRAY' ) { |
162 |
return join(' ', @{ $row->{$name} }); |
warn "is array ", wantarray ? 'wantarray' : 'scalar', " $name"; |
163 |
|
return @{$row->{$name}} if wantarray; |
164 |
|
return join( $delimiter, @{ $row->{$name} }); |
165 |
} else { |
} else { |
166 |
|
warn "not array ", wantarray ? 'wantarray' : 'scalar', " $name"; |
167 |
return $row->{$name}; |
return $row->{$name}; |
168 |
} |
} |
169 |
} |
} |