2011-05-04 4 views
2

Je commence à écrire un simple programme Perl sur mon Mac, et je comprends que la première ligne doit être l'emplacement de Perl lui-même, chaque exemple ou tutoriel que je trouve me dit que la première ligne devrait être:Perl Emplacement sur Mac OSX

"#/usr/bin/perl!"

Cependant, avec ce là, je tente d'exécuter le fichier sous localhost et je reçois cette erreur:

Internal Server error le le serveur a rencontré une erreur interne ou une mauvaise configuration et n'a pas pu terminer votre requête. Veuillez contacter l'administrateur du serveur, [email protected] et informez-les de l'heure à laquelle l'erreur s'est produite et de tout ce que vous avez pu faire qui pourrait avoir causé l'erreur. Plus d'informations sur cette erreur peuvent être disponibles dans le journal des erreurs du serveur.

Quelqu'un at-il une idée de ce qui se passe?

Merci d'avance, et laissez-moi savoir si d'autres informations sont nécessaires!

P.S. si elle aide, quand j'exécute la commande: "perl -v" il me dit

Ceci est perl, v5.10.0 construit pour darwin-fil multi-2level (avec 2 plaques enregistrées, voir perl -V pour plus de détails)

+0

Pourriez-vous éditer votre question et coller le contenu de votre script Perl? Et comment exécutez-vous le script? Cela ressemble à une erreur système, pas une erreur Perl en soi. –

+0

'#!/Usr/bin/perl' est le bon chemin pour 10.6 – Erik

+2

Depuis la [FAQ Perl de Stack Overflow] (http://stackoverflow.com/questions/tagged/perl?sort=faq): [Comment puis-je dépanner mon script Perl CGI?] (http://stackoverflow.com/questions/2165022/how-can-i-troubleshoot-my-perl-cgi-script) – daxim

Répondre

2

#!/usr/bin/perl est le chemin correct pour 10.6. Si vous utilisez le serveur Web, votre première ligne avant toute sortie doit être un en-tête HTML. Vous en avez peut-être oublié un?

#!/usr/bin/perl 

use CGI; 
print CGI->header('text/html'); 
print "hello world"; 
3

Comme Erik dit /usr/bin/perl est l'emplacement standard pour Perl sur OSX. Vous pouvez également vérifier cela en exécutant which -a perl à partir du terminal (cela affichera toutes les instances de Perl sur votre chemin).

Pouvez-vous exécuter votre script à partir de la ligne de commande, c'est-à-dire ./<myscript>.pl? Il est possible que vous n'ayez pas rendu le script exécutable.

+0

Intéressant. Quand j'exécute 'which -a perl' cela montre que c'est l'emplacement de Perl sur ma machine. Lorsque j'essaie de l'exécuter à partir de la ligne de commande, il me dit que je n'ai pas la permission, et quand je le sudo, je reçois l'erreur: 'sudo: ./hello.pl: commande non trouvée' Comment puis-je le rendre exécutable? Aussi, merci d'avance pour toute l'aide des gars, j'apprécie vraiment! – fullOfQuestions

+0

'chmod + x hello.pl' rendra le script exécutable pour tous les utilisateurs. Quant à l'erreur sudo, je ne suis pas sûr, pourrait potentiellement être la façon de sudo de vous dire que le fichier n'était pas exécutable. –