2014-05-13 6 views
0

J'ai écrit un script perl très simple pour Linux afin de déterminer l'utilisateur actuel connecté. Cependant, je continue à obtenir l'erreur suivante lorsque vous essayez de l'exécuter:erreur de syntaxe dans le script perl pour linux

bash: use: command not found 
bash: my: command not found 
bash: ./test.pl: line 9: syntax error near unexpected token `else' 
bash: ./test.pl: line 9: `} else {' 

Ceci est mon code:

#!/usr/bin/perl 
use strict; 

my $loginName = ''; 

if ($^O =~ /MSWin/i) 
{ 
$loginName = getlogin; 
} else { 
#else it is unix 
$loginName = getpwuid($<); 
} 

print $loginName; 

J'ai essayé de google, mais je ne vois pas ce que je fais mal avec mon si déclaration? Cela fonctionne très bien sur Windows.

Merci

+1

on dirait que vous l'exécutez wi Th bash. Essayez perl test.pl –

+0

Montrez-nous comment vous exécutez votre script. –

+0

Assurez-vous également que #!/Usr/bin/perl est la toute première ligne de votre script. –

Répondre

2

Vous invoquez le script de manière incorrecte: ces erreurs sont clairement bash, alors que perl doit être en cours d'exécution à la place le script.

Je ne sais pas comment vous utilisez maintenant, mais (en supposant que son nom de fichier est mywhoami), vous pouvez toujours invoquez perl explicitement:

perl mywhoami 

Il faut aussi travailler pour le rendre exécutable

chmod a+x mywhoami 

puis l'exécuter:

./mywhoami 
0

Je pense qu'il est quelque chose de la façon dont vous exécutez le script. S'il vous plaît essayer de l'exécuter comme suit:

$perl <script.pl> 
+1

' py' n'est pas la meilleure extension pour un script Perl, n'est-ce pas? – choroba

+0

@choroba, vous avez raison, je suis habitué à exécuter des scripts python (qui ont le même comportement), il devrait être .pl, thx. –

Questions connexes