2010-08-01 7 views
1
#!/usr/bin/perl -w 
use WWW::Mechanize; 
print $WWW::Mechanize::VERSION."\n"; 

1) exécuté à partir TextMate:Pourquoi je ne peux pas lancer Perl à partir de Textmate?

ne peut pas localiser WWW/Mechanize.pm dans @INC (@INC contient: /Applications/TextMate.app/Contents/SharedSupport/Bundles/Perl. tmbundle/Support /Bibliothèque/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0/Bibliothèque/Perl/5.10.0/darwin-thread-multi-2level /Bibliothèque/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0/Réseau/Bibliothèque/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0.) À /Users/xxx/Development/test.pl ligne 2 . BEGIN échoué - compilation avorté à la ligne /Users/xxx/Development/test.pl 2.

2) du terminal lance:

sh-3.2# perl test.pl<br> 
1.64 

Que dois-je faire?

+1

Cela semble être des variables d'environnement. –

Répondre

1

Il semble que vous avez installé WWW :: Mechanize dans un répertoire qui n'est pas recherché par défaut. Très probablement, vous avez une variable d'environnement PERL5LIB ou autre qui ajoute ce répertoire au chemin de recherche de Perl, et pour une raison quelconque, cela n'est pas défini dans l'environnement fourni par TextMate.

Essayez d'exécuter perl -V à partir du shell et de TextMate et de voir quelle est la différence dans les chemins de recherche. Vous pouvez également ajouter

print "$INC{'WWW/Mechanize.pm'}\n"; 

à votre script de test pour savoir où il est installé.

+0

Je connaissais le problème maintenant. J'ai perl deux versions 5.10.0 et 5.8.9. Textmate exécuté à partir de la version 5.10.0 mais exécuté à partir de la version 5.8.9. Comment changer Textmate pour exécuter 5.8.9? – lzrckt

+2

@ratchse: remplacez/usr/bin/perl par le chemin approprié vers le 5.8.9 perl? – ysth