2010-08-25 9 views
2

J'ai écrit un petit script en Perl que j'exécute sur Windows avec ActivePerl comme ci-dessous:Comment exécuter un programme Perl sous Windows sans appeler perl sur la ligne de commande?

C:\Documents and Settings\Administrator> perl io.pl io.pl 
#!/usr/bin/perl 
use warnings; 

sub test6 { 
    while (defined($_ = <>)) { 
     #chomp($_); 
     print $_; 
    } 
} 
test6; 

Comme vous pouvez le voir, le code est similaire à la commande Unix cat:

C:\Documents and Settings\Administrator> perl io.pl io.pl 

Si je veux exécuter ce script sans le mot-clé perl sur la ligne de commande, que faut-il faire? Je veux que le script à exécuter comme:

C:\Documents and Settings\Administrator> ./io.pl io.pl 
+1

-1 pour aucune indentation - il est évident de ne pas indenter et de punir les lecteurs de votre code. –

+4

PP, vous avez assez de réputation pour éditer vous-même. – daxim

Répondre

4

L'extension .pl doit être associé à l'interpréteur Perl, pour une chose. Cela est facilement fait en essayant d'ouvrir le script à partir de l'Explorateur Windows - quand on vous demande quel programme utiliser pour l'ouvrir, naviguez jusqu'à perl.exe. Et assurez-vous que la case "Toujours utiliser ce programme ..." est cochée.

Windows aime vérifier le répertoire actuel en premier, donc vous n'avez pas besoin de "./" dedans.

+2

Si vous avez envie de vivre dangereusement, jetez un oeil à la variable 'PATHEXT'. Il contient la liste des extensions séparées par des points-virgules que vous pouvez omettre lors de l'exécution d'un programme dans le shell cmd de Windows. 'set PATHEXT =% PATHEXT%;. PL' vous permettra d'exécuter' io.pl' comme juste 'io' –

-2

Je pense que spécifier l'emplacement du répertoire d'installation de perl au début du script perl devrait le faire.

#!<perl install directory\bin\perl > rather then #!usr/bin/perl 
+2

Windows ne lit pas les lignes shebang. Cygwin peut, mais ActivePerl est généralement exécuté sur Windows sans Cygwin. – cHao

Questions connexes