+=head2 GetMarcControlnumber
+
+ $marccontrolnumber = GetMarcControlnumber($record,$marcflavour);
+
+Get the control number / record Identifier from the MARC record and return it.
+
+=cut
+
+sub GetMarcControlnumber {
+ my ( $record, $marcflavour ) = @_;
+ my $controlnumber = "";
+ # Control number or Record identifier are the same field in MARC21 and UNIMARC
+ # Keep $marcflavour for possible later use
+ if ($marcflavour eq "MARC21" || $marcflavour eq "UNIMARC") {
+ my $controlnumberField = $record->field('001');
+ if ($controlnumberField) {
+ $controlnumber = $controlnumberField->data();
+ }
+ }
+ return $controlnumber;
+}
+
+=head2 GetMarcISBN
+
+ $marcisbnsarray = GetMarcISBN( $record, $marcflavour );
+
+Get all ISBNs from the MARC record and returns them in an array.
+ISBNs stored in differents places depending on MARC flavour
+
+=cut
+
+sub GetMarcISBN {
+ my ( $record, $marcflavour ) = @_;
+ my $scope;
+ if ( $marcflavour eq "MARC21" ) {
+ $scope = '020';
+ } else { # assume unimarc if not marc21
+ $scope = '010';
+ }
+ my @marcisbns;
+ my $isbn = "";
+ my $tag = "";
+ my $marcisbn;
+ foreach my $field ( $record->field($scope) ) {
+ my $value = $field->as_string();
+ if ( $isbn ne "" ) {
+ $marcisbn = { marcisbn => $isbn, };
+ push @marcisbns, $marcisbn;
+ $isbn = $value;
+ }
+ if ( $isbn ne $value ) {
+ $isbn = $isbn . " " . $value;
+ }
+ }
+
+ if ($isbn) {
+ $marcisbn = { marcisbn => $isbn };
+ push @marcisbns, $marcisbn; #load last tag into array
+ }
+ return \@marcisbns;
+} # end GetMarcISBN
+