From ae9ac77f55830ec12373ca1fbffcd7825c0d8b6f Mon Sep 17 00:00:00 2001
From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Date: Mon, 27 Nov 2023 16:12:41 +0100
Subject: [PATCH] Bug 35405: Remove noise from MARC::Record in
 SearchAuthorities
Content-Type: text/plain; charset=utf-8

We are calling ->field with an undef parameter.
MARC::Record does not like that and says:
  Use of uninitialized value $tag in hash element at /usr/share/perl5/MARC/Record.pm line 202.
For now, a fix at our side.

Test plan:
Run SearchAuthorities without passing an authtypecode.
Without this patch, it results in a warning per hit.
With this patch, the noise should be gone.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
---
 C4/AuthoritiesMarc.pm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index 4c593e4eb6..8c4dde95af 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -297,12 +297,13 @@ sub SearchAuthorities {
         my %newline;
         $newline{authid} = $authid;
         if ( !$skipmetadata ) {
-            my $auth_tag_to_report;
-            $auth_tag_to_report = Koha::Authority::Types->find($authtypecode)->auth_tag_to_report
-                if $authtypecode;
-            my $reported_tag;
-            my $mainentry = $authrecord->field($auth_tag_to_report);
+            my ( $auth_tag_to_report, $reported_tag, $mainentry );
+            if ( $authtypecode ) {
+                $auth_tag_to_report = Koha::Authority::Types->find($authtypecode)->auth_tag_to_report;
+                $mainentry          = $authrecord->field($auth_tag_to_report) if $auth_tag_to_report;
+            }
             if ($mainentry) {
+                $reported_tag = q{};
                 foreach ( $mainentry->subfields() ) {
                     $reported_tag .= '$' . $_->[0] . $_->[1];
                 }
-- 
2.30.2