Marc Simple is intented to simplify Marc record handling by providing CRUD API above MARC::Record library.
For exemple, with MARC::Record, you should have done the following to get the value of a subfield:
my $value = '';
if ( $record->field('200') && $record->field('200')->subfield('a') ) {
$value = $record->field('200')->subfield('a');
}
With Marc Simple, you can do:
my $value = GetSubfield($record, '200$a');
Or, to Add or update a subfield with MARC::Record:
if ( $record->field('200') ) {
if ( $record->field('200')->subfield('a') ) {
$record->field('200')->update( 'a' => 'Foo' );
}
else {
$record->field('200')->add_subfields( 'a' => 'Foo' );
}
}
else {
my $field = MARC::Field->new('200', '', '', 'a' => 'Foo');
$record->insert_fields_ordered($field);
}
Can be done like the following with Marc Simple:
use MarcSimple::Crud;
UpdateSubfield($record, '200$a', 'Foo') or AddSubfield($record, '200$a', 'Foo');