From a123b747de153c393801728c5cb5fa27167c4cef Mon Sep 17 00:00:00 2001 From: Petro Vashchuk Date: Mon, 18 May 2020 14:45:56 +0300 Subject: [PATCH] Bug 25516: Fix for "Can't call method unblessed on unblessed reference" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Software error: Can't call method "unblessed" on unblessed reference at ../reserve/request.pl line 581. was caused by recent commit with `wantarray` removal in sub pickup_locations in ‘Item.pm’ and visible on fresher Perls (where experimental feature "autoderef" removed https://www.effectiveperlprogramming.com/2010/11/use-array-references-with-the-array-operators/ ) To test: 1) Get a clean dev environment after "reset_all" 2) Add an empty record for “Default checkout, hold and return policy” on /cgi-bin/koha/admin/smart-rules.pl. 3) Open item record, like /cgi-bin/koha/reserve/request.pl?biblionumber=1&borrowernumber=1 4) Observe the error (Can't call method "unblessed" on unblessed reference at ../reserve/request.pl line 581.) 5) Apply patch. 6) Repeat steps 2 and 3. 7) Observe that the error is gone. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Jonathan Druart Amended-patch: replace tab indentation with spaces --- reserve/request.pl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/reserve/request.pl b/reserve/request.pl index 61f853d085..26e40dd685 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -577,14 +577,13 @@ foreach my $biblionumber (@biblionumbers) { $item->{pickup_locations} = 'Any library'; $item->{pickup_locations_code} = 'all'; } else { + my $arr_locations = Koha::Items->find($itemnumber) + ->pickup_locations( { patron => $patron } ); + $item->{pickup_locations} = join( ', ', - map { $_->unblessed->{branchname} } - Koha::Items->find($itemnumber) - ->pickup_locations( { patron => $patron } ) ); + map { $_->unblessed->{branchname} } @$arr_locations); $item->{pickup_locations_code} = join( ',', - map { $_->unblessed->{branchcode} } - Koha::Items->find($itemnumber) - ->pickup_locations( { patron => $patron } ) ); + map { $_->unblessed->{branchcode} } @$arr_locations); } push( @available_itemtypes, $item->{itype} ); -- 2.20.1