$self->mods('fieldname')
-If there are no modifiers, C<undef> will be returned. Else a listref
+If there are no modifiers, C<undef> will be returned. Else a hashref
will be returned.
=cut
my ($self, $map) = @_;
# trim the mods and filters
- my $mods = []; my %mods = ();
+ my $mods = {};
my $filt = []; my %filt = ();
for my $m (@{$map->{mods}}) {
- die "Modifier collision '$m' at line $." if $mods{$m};
+ die "Modifier collision '$m' at line $." if $mods->{$m};
$m =~ s/^m://;
- push @{$mods}, $m; $mods{$m} = 1;
+ $mods->{$m} = 1;
}
for my $f (@{$map->{filt}}) {
die "Modifier collision '$f' at line $." if $filt{$f};
is ($sm->field(949,'a'), 'call_number', 'mapping returned');
# mod method tests
-is ($sm->{fields}{note}{mods}[0], 'multi');
+is ($sm->{fields}{note}{mods}{multi}, 1);
is ($sm->mods('zzz'), undef, 'nonexistant field');
-is_deeply ($sm->mods('note'), ['multi'], 'multi');
-is_deeply ($sm->mods('note_alt'), ['multi', 'req'], 'multi, req');
-is_deeply ($sm->mods('date_a'), ['foo', 'bar', 'quux']);
+is_deeply ($sm->mods('note'), { multi => 1}, 'multi');
+is_deeply ($sm->mods('note_alt'), { multi => 1, req => 1 }, 'multi, req');
+is_deeply ($sm->mods('date_a'), { foo => 1, bar => 1, quux => 1 });
is_deeply ($sm->filters('date_a'), ['one two three']);