# sorry für das kleingeschriebene modul, ist ja nur zum testen package esskarcgiapp; use base 'CGI::Application';  sub cgiapp_prerun {        my $self = shift;        # Perform some project-specific init behavior        # such as to implement run mode specific        # authorization functions.        my %loadModules = (            'login::form' => ['esskarcgiapp_login.pm', 'CGI.pm'],        );        my $found = 0;        foreach( keys(%loadModules) ) {            if( $_ eq $self->get_current_runmode() ){                foreach my $module( @{$loadModules{$_}} ) {                    # überprüfen ob es das Modul gibt und ob das Laden erfolgreich war usw.                    require $module;                }                $found = 1;                last;            } # /if        } # /foreach          } # /cgiapp_prerun sub setup {  my $self = shift;  $self->header_props(     -type   => 'text/html',     -charset   => 'utf-8',  );  $self->mode_param('action');  $self->start_mode('login::form');  $self->run_modes(     'login::form' => 'login_form',  ); } sub login_form {    my $lf = new esskarcgiapp_login;    if( $lf ){        return "loginfoprm here";    }else{        return "geht nicht!?";    } } 1;