Error trace

Template process failed: undef error - Can't use string ("REF") as a HASH ref while "strict refs" in use at /kohadevbox/koha/Koha/Template/Plugin/AuthorisedValues.pm line 83.
 at /kohadevbox/koha/C4/Templates.pm line 122

    in C4::Templates::output at /kohadevbox/koha/C4/Templates.pm line 122

      119: 
      120:     my $data;
      121:     binmode( STDOUT, ":encoding(UTF-8)" );
      122:     $template->process( $self->filename, $vars, \$data )
      123:       || die "Template process failed: ", $template->error();
      124:     return $data;
      125: }

    Show function arguments
    in (eval) at /kohadevbox/koha/course_reserves/course-details.pl line 72

       69:     course_reserves => $course_reserves,
       70: );
       71: 
       72: output_html_with_http_headers $cgi, $cookie, $template->output;

    in CGI::Compile::ROOT::kohadevbox_koha_course_reserves_course_2ddetails_2epl::__ANON__ at /kohadevbox/koha/course_reserves/course-details.pl line 2

        1: #!/usr/bin/perl
        2: 
        3: #
        4: # Copyright 2012 Bywater Solutions
        5: #

    Show function arguments
    in CGI::Compile::__ANON__ at /usr/share/perl5/CGI/Compile.pm line 139

      136:             # this is necessary for MSWin32
      137:             my $orig_warn = $SIG{__WARN__} || sub { warn(@_) };
      138:             local $SIG{__WARN__} = sub { $orig_warn->(@_) unless $_[0] =~ /^No such signal/ };
      139:             $code->($self, $data, $path, $dir, \@args)
      140:         };
      141:     };
      142: 

    in CGI::Emulate::PSGI::__ANON__ at /usr/share/perl5/CGI/Emulate/PSGI.pm line 30

       27:                 local *STDOUT = $stdout;
       28:                 local *STDERR = $env->{'psgi.errors'};
       29: 
       30:                 $code->();
       31:             }
       32:         }
       33: 

    Show function arguments
    in Plack::App::WrapCGI::call at /usr/share/perl5/Plack/App/WrapCGI.pm line 90

       87: 
       88: sub call {
       89:     my($self, $env) = @_;
       90:     $self->_app->($env);
       91: }
       92: 
       93: 1;

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::App::CGIBin::serve_path at /usr/share/perl5/Plack/App/CGIBin.pm line 50

       47:     my $app = $self->{_compiled}->{$file} ||= Plack::App::WrapCGI->new(
       48:         script => $file, execute => $self->would_exec($file),
       49:     )->to_app;
       50:     $app->($env);
       51: }
       52: 
       53: 1;

    Show function arguments
    in Plack::App::File::call at /usr/share/perl5/Plack/App/File.pm line 34

       31:         $env->{'plack.file.PATH_INFO'}   = '';
       32:     }
       33: 
       34:     return $self->serve_path($env, $file);
       35: }
       36: 
       37: sub locate_file {

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::Middleware::LogWarn::call at /usr/share/perl5/Plack/Middleware/LogWarn.pm line 22

       19:          message => join '', @_
       20:       });
       21:    };
       22:    my $res = $self->app->($env);
       23: 
       24:    return $res;
       25: }

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::Middleware::Log4perl::call at /usr/share/perl5/Plack/Middleware/Log4perl.pm line 30

       27:         $self->logger->$level($args->{message});
       28:     };
       29: 
       30:     $self->app->($env);
       31: }
       32: 
       33: 1;

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::App::URLMap::call at /usr/share/perl5/Plack/App/URLMap.pm line 71

       68:         return $self->response_cb($app->($env), sub {
       69:             $env->{PATH_INFO} = $orig_path_info;
       70:             $env->{SCRIPT_NAME} = $orig_script_name;
       71:         });
       72:     }
       73: 
       74:     DEBUG && warn "All matching failed.\n";

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Koha::Middleware::RealIP::call at /kohadevbox/koha/Koha/Middleware/RealIP.pm line 64

       61:         }
       62:     }
       63: 
       64:     return $self->app->($env);
       65: }
       66: 
       67: =head2 get_real_ip

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Koha::Middleware::SetEnv::call at /kohadevbox/koha/Koha/Middleware/SetEnv.pm line 104

      101:         %setenvs
      102:     };
      103: 
      104:     return $self->app->($env);
      105: }
      106: 
      107: =head1 AUTHOR

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::Middleware::Static::call at /usr/share/perl5/Plack/Middleware/Static.pm line 18

       15:         return $res;
       16:     }
       17: 
       18:     return $self->app->($env);
       19: }
       20: 
       21: sub _handle_static {

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::Middleware::ReverseProxy::call at /usr/share/perl5/Plack/Middleware/ReverseProxy.pm line 68

       65:         }
       66:     }
       67: 
       68:     $self->app->($env);
       69: }
       70: 
       71: 1;

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::Middleware::Lint::call at /usr/share/perl5/Plack/Middleware/Lint.pm line 24

       21:     my $env = shift;
       22: 
       23:     $self->validate_env($env);
       24:     my $res = $self->app->($env);
       25:     return $self->validate_res($res);
       26: }
       27: 

    Show function arguments
    in Plack::Middleware::StackTrace::try {...} at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    in (eval) at /usr/share/perl5/Try/Tiny.pm line 101

       98:     if ( $wantarray ) {
       99:       @ret = $try->();
      100:     } elsif ( defined $wantarray ) {
      101:       $ret[0] = $try->();
      102:     } else {
      103:       $try->();
      104:     };

    in Plack::Middleware::StackTrace::call at /usr/share/perl5/Try/Tiny.pm line 94

       91: 
       92:   # failed will be true if the eval dies, because 1 will not be returned
       93:   # from the eval body
       94:   my $failed = not eval {
       95:     $@ = $prev_error;
       96: 
       97:     # evaluate the try block in the correct context

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in Plack::Middleware::AccessLog::call at /usr/share/perl5/Plack/Middleware/AccessLog.pm line 27

       24:     my $self = shift;
       25:     my($env) = @_;
       26: 
       27:     my $res = $self->app->($env);
       28: 
       29:     if ( ref($res) && ref($res) eq 'ARRAY' ) {
       30:         my $content_length = Plack::Util::content_length($res->[2]);

    Show function arguments
    in Plack::Component::__ANON__ at /usr/share/perl5/Plack/Component.pm line 50

       47: sub to_app {
       48:     my $self = shift;
       49:     $self->prepare_app;
       50:     return sub { $self->call(@_) };
       51: }
       52: 
       53: 

    Show function arguments
    in (eval) at /usr/share/perl5/Plack/Util.pm line 145

      142: sub run_app($$) {
      143:     my($app, $env) = @_;
      144: 
      145:     return eval { $app->($env) } || do {
      146:         my $body = "Internal Server Error";
      147:         $env->{'psgi.errors'}->print($@);
      148:         [ 500, [ 'Content-Type' => 'text/plain', 'Content-Length' => length($body) ], [ $body ] ];

    in Plack::Util::run_app at /usr/share/perl5/Plack/Util.pm line 145

      142: sub run_app($$) {
      143:     my($app, $env) = @_;
      144: 
      145:     return eval { $app->($env) } || do {
      146:         my $body = "Internal Server Error";
      147:         $env->{'psgi.errors'}->print($@);
      148:         [ 500, [ 'Content-Type' => 'text/plain', 'Content-Length' => length($body) ], [ $body ] ];

    Show function arguments
    in Starman::Server::dispatch_request at /usr/share/perl5/Starman/Server.pm line 195

      192:     my ($self, $env) = @_;
      193: 
      194:     # Run PSGI apps
      195:     my $res = Plack::Util::run_app($self->{app}, $env);
      196: 
      197:     if (ref $res eq 'CODE') {
      198:         $res->(sub { $self->_finalize_response($env, $_[0]) });

    Show function arguments
    in Starman::Server::process_request at /usr/share/perl5/Starman/Server.pm line 298

      295: 
      296:         $self->_prepare_env($env);
      297: 
      298:         $self->dispatch_request($env);
      299: 
      300:         DEBUG && warn "[$$] Request done\n";
      301: 

    Show function arguments
    in Net::Server::run_client_connection at /usr/share/perl5/Net/Server.pm line 74

       71:     $self->post_accept_hook($c);    # user customizable hook
       72: 
       73:     my $ok = $self->allow_deny($c) && $self->allow_deny_hook($c); # do allow/deny check on client info
       74:     if ($ok) {
       75:         $self->process_request($c);   # This is where the core functionality of a Net::Server should be.
       76:     } else {
       77:         $self->request_denied_hook($c);     # user customizable hook

    Show function arguments
    in (eval) at /usr/share/perl5/Net/Server/PreFork.pm line 229

      226:         $prop->{'connected'} = 1;
      227:         print $write "$$ processing\n";
      228: 
      229:         my $ok = eval { $self->run_client_connection; 1 };
      230:         if (! $ok) {
      231:             print $write "$$ exiting\n";
      232:             die $@;

    in Net::Server::PreFork::run_child at /usr/share/perl5/Net/Server/PreFork.pm line 229

      226:         $prop->{'connected'} = 1;
      227:         print $write "$$ processing\n";
      228: 
      229:         my $ok = eval { $self->run_client_connection; 1 };
      230:         if (! $ok) {
      231:             print $write "$$ exiting\n";
      232:             die $@;

    Show function arguments
    in Net::Server::PreFork::run_n_children at /usr/share/perl5/Net/Server/PreFork.pm line 187

      184:             if ($prop->{'child_communication'}) {
      185:                 $prop->{'parent_sock'} = $childsock;
      186:             }
      187:             $self->run_child;
      188:         }
      189:     }
      190: }

    Show function arguments
    in Net::Server::PreFork::loop at /usr/share/perl5/Net/Server/PreFork.pm line 111

      108: 
      109:     my $start = $prop->{'min_servers'};
      110:     $self->log(3, "Beginning prefork ($start processes)");
      111:     $self->run_n_children($start);
      112: 
      113:     $self->run_parent;
      114: }

    Show function arguments
    in Net::Server::run at /usr/share/perl5/Net/Server.pm line 60

       57:     $self->post_bind;           # allow for chrooting, becoming a different user and group
       58: 
       59:     $self->pre_loop_hook;       # user customizable hook
       60:     $self->loop;                # repeat accept/process cycle
       61: 
       62:     $self->server_close;        # close the server and release the port
       63: }

    Show function arguments
    in Starman::Server::run at /usr/share/perl5/Starman/Server.pm line 106

      103:         max_requests        => $options->{max_requests}      || 1000,
      104:         user                => $options->{user}              || $>,
      105:         group               => $options->{group}             || $),
      106:         listen              => $options->{backlog}           || 1024,
      107:         check_for_waiting   => 1,
      108:         no_client_stdout    => 1,
      109:         %extra

    Show function arguments
    in Plack::Handler::Starman::run at /usr/share/perl5/Plack/Handler/Starman.pm line 25

       22:     }
       23:     $self->{net_server_args} = \%nsa if %nsa;
       24: 
       25:     Starman::Server->new->run($app, {%$self});
       26: }
       27: 
       28: 1;

    Show function arguments
    in Plack::Loader::Delayed::run at /usr/share/perl5/Plack/Loader/Delayed.pm line 20

       17:     };
       18: 
       19:     $server->{psgi_app_builder} = $self->{builder};
       20:     $server->run($app);
       21: }
       22: 
       23: 1;

    Show function arguments
    in Plack::Runner::run at /usr/share/perl5/Plack/Runner.pm line 277

      274:     $loader->preload_app($app);
      275: 
      276:     my $server = $self->load_server($loader);
      277:     $loader->run($server);
      278: }
      279: 
      280: 1;

    Show function arguments
    at /usr/bin/starman line 38

       35: }
       36: 
       37: $runner->set_options(argv => \@argv);
       38: $runner->run;
       39: 
       40: __END__
       41: