Control fields are not handled correctly by Koha::SimpleMARC when
comparaison (with or without regex) is done.
Which means we did not support something like:
Do something if control field 008 equals or matches "a string"
Test plan:
Create a new MARC modification template and a new action, like:
Add new field 100$a with value "foo bar" if 008 (or any other control
fields) matches (or equals) a regex
Then use the record mofication tool and confirm that the new field is
create if the regex matches 008 of the bib record
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
my @field_numbers = ();
my $current_field_number = 1;
FIELDS: for my $field ( $record->field( $fieldName ) ) {
- my @subfield_values = $subfieldName
- ? $field->subfield( $subfieldName )
- : map { $_->[1] } $field->subfields;
+ my @subfield_values;
+ if ( $field->is_control_field ) {
+ push @subfield_values, $field->data;
+ } else {
+ @subfield_values =
+ $subfieldName
+ ? $field->subfield($subfieldName)
+ : map { $_->[1] } $field->subfields;
+ }
SUBFIELDS: for my $subfield_value ( @subfield_values ) {
if (