Perl Module

toor

Bruchpilot
Hi Leute!

Ich bin gerade am Perl Programmieren und wollte zum Ausprobieren Module aus den Ports installieren was auch wunderbar klappt:

Code:
(root@ghostmachine) [/usr/ports/net/p5-Net-Telnet]# make install clean             
...
Installing /usr/local/lib/perl5/site_perl/5.8.6/Net/Telnet.pm
Installing /usr/local/lib/perl5/5.8.6/man/man3/Net::Telnet.3
Writing /usr/local/lib/perl5/site_perl/5.8.6/mach/auto/Net/Telnet/.packlist
===>   Compressing manual pages for p5-Net-Telnet-3.03
===>   Registering installation for p5-Net-Telnet-3.03
===>  Cleaning for perl-5.8.7
===>  Cleaning for p5-Net-Telnet-3.03
(root@ghostmachine) [/usr/ports/net/p5-Net-Telnet]#

Doch wenn ich jetzt das Modul verwenden will bekomme ich:

Code:
(ghost@ghostmachine) [~/Perl]% perl telnettest.pl                                            
Can't locate NET/Telnet.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.8.6/mach /usr/local/lib/perl5/site_perl/5.8.6 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.6/BSDPAN /usr/local/lib/perl5/5.8.6/mach /usr/local/lib/perl5/5.8.6 .) at telnettest.pl line 4.
BEGIN failed--compilation aborted at telnettest.pl line 4.
(ghost@ghostmachine) [~/Perl]%

Das Modul liegt in
/usr/local/lib/perl5/site_perl/5.8.6/Net/Telnet.pm
die Rechte sind die gleichen wie bei den anderen Modulen
auch das Kopieren in ein anderes oben genanntes Verzeichnis bringt nichts

Kann mir jemand sagen wo der Hund begraben liegt?
 
Zeig mal die relevanten Ausschnitte aus deinem script

Achso, und das Module heisst Net::Telnet nicht NET::Telnet
 
Code:
(ghost@ghostmachine) [~/Perl]% perl telnettest.pl                                            
Can't locate NET/Telnet.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.8.6/mach /usr/local/lib/perl5/site_perl/5.8.6 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.6/BSDPAN /usr/local/lib/perl5/5.8.6/mach /usr/local/lib/perl5/5.8.6 .) at telnettest.pl line 4.
BEGIN failed--compilation aborted at telnettest.pl line 4.
(ghost@ghostmachine) [~/Perl]%

Ein paar Hinweise:
1. Perl sucht deine use/require Anweisungen in @INC. perl -wle 'print for @INC' zeigt dir welche Verzeichnisse das sind. Wenn du andere verwenden willst musst du entweder Perl neu kompilieren oder ein use lib qw(/pfad/zum/modul) ein tragen.

2. Wie mama schon erwaehnt hat: Das Ganze ist CaSe SenSiTivE.

3. Um zu testen ob ein Modul installiert ist brauchst du kein Script zu schrauben. Es langt ein perl -MMein::Modul -e1. Wenn das Modul nicht installiert ist wird sich Perl beschweren. ;)

4. Was hast du mit Net::Telnet vor? Das Meiste in der Richtung laesst sich auch mit IO::Socket::INET viel kontrollierter loesen.

Kann mir jemand sagen wo der Hund begraben liegt?
use NET::Telnet; -> use Net::Telnet;

Viel Spass beim Perlen
Sebastian
 
Greif mir grad selbst ans Hirn!!

Hattet recht mit Großschreibung, vielen dankl für die Antworten ...

DANKE!
 
Zurück
Oben