steckl: feststellen ob Modul vorhanden ist

Hi,

ist es moeglich in Perl festzustellen ob ein Modul installiert ist.

Grund:
Ich habe ein Script geschrieben, das von mehreren leuten verwendet wird in dem ich ein Perl-Modul verwende, das standardmaessig nicht installiert ist (Spreadsheet::ParseExcel). Wenn das Modul nicht verfuegbar ist moechte ich eine Meldung ausgeben, dass man sich auf einem anderen Rechner einloggen soll.

Hier habe ich eine art try()-catch() gefunden, was an sich schon funktioniert. Aber wenn ich es abaendere und in das eval "use unbekanntesModul;" schreibe wird sofort abgebrochen, ohne dass noch der catch-Zweig durchlaufen wird.

Hat jemand eine Idee, wie ich die Anwender darauf aufmerksam machen kann, dass sie sich wo anders einloggen sollen?

mfG,
steckl

  1. ist es moeglich in Perl festzustellen ob ein Modul installiert ist.

    Mal so runtergetippt:

    my $found = 0;  
    foreach( @INC ) {  
      if(-e $_.'/Spreadsheet/ParseExcel.pm') {  
        $found = 1;  
        last;  
      }  
    }  
    if($found) {  
      require Spreadsheet::ParseExcel;  
      import Spreadsheet::ParseExcel @LIST;  
      print 'Spreadsheet::ParseExcel loaded';  
    }  
    else {  
      print 'Not found';  
    }
    

    Ich meine, auch irgendwo in der Perldoku etwas innerhalb eines BEGIN-Blockes gefunden zu haben, aber ich weiß nicht mehr wo :(

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
    1. Hi,

      Mal so runtergetippt

      Danke, klappt optimal fuer meinen Anwendungsfall :-)

      Ich meine, auch irgendwo in der Perldoku etwas innerhalb eines BEGIN-Blockes gefunden zu haben, aber ich weiß nicht mehr wo :(

      Der Code oben reicht mir ja leicht.

      mfG,
      steckl