=head2 _pack_subfields_hash
- @values = _pack_subfields_hash( $h, $include_subfields )
+ @subfields = _pack_subfields_hash( $h );
+ $subfields = _pack_subfields_hash( $h, 1 );
+
+Return each subfield value in array or pack them all together and return scalar
+with subfields (denoted by C<^>) and values.
=cut
my $o = shift @$sfs;
if ($o == 0 && ref( $h->{$sf} ) ne 'ARRAY' ) {
# single element subfields are not arrays
-warn "====> $sf $o / $#$sfs ", dump( $sfs, $h->{$sf} ), "\n";
+#warn "====> $sf $o / $#$sfs ", dump( $sfs, $h->{$sf} ), "\n";
push @out, $h->{$sf};
} else {
-warn "====> $sf $o / $#$sfs ", dump( $sfs, $h->{$sf} ), "\n";
+#warn "====> $sf $o / $#$sfs ", dump( $sfs, $h->{$sf} ), "\n";
push @out, $h->{$sf}->[$o];
}
}
'_pack_subfields_hash( $h )'
);
- is_deeply(
- [ _pack_subfields_hash({
+ cmp_ok(
+ _pack_subfields_hash({
a => [ 'a1', 'a2' ], b => [ 'b1', 'b2' ], c => [ 'c1', 'c2' ],
subfields => [ qw/a 0 b 0 a 1 b 1 c 0 c 1/ ],
- }, 1) ],
- ['^a','a1', '^b','b1', '^a','a2', '^b','b2', '^c','c1', '^c','c2'],
+ }, 1),
+ 'eq',
+ '^aa1^bb1^aa2^bb2^cc1^cc2',
'_pack_subfields_hash( $h, 1 )'
);
}