Erreur script perl Linux

Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - Modifié par xunil2003 le 23/04/2012 à 22:20
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 24 avril 2012 à 10:28
Bonjour,

Je suis débutant perl, pouvez vous m'aider. je ne comprend pas ce qui ce passe, je trouve pas mon erreur ?

Quand j'exécute mon fichier perl j'ai ce message
root@debian:/home/serveur/x10/perl# ./cm15-A4.pl 
./cm15-A4.pl: line 2: use: command not found 
./cm15-A4.pl: line 4: syntax error near unexpected token 'CM15A,' 
./cm15-A4.pl: line 4: '    sysopen( CM15A, "/dev/cm15a0", O_RDWR |O_NOCTTY | O_NONBLOCK ) || die "Module cm15a.ko non charge $!";' 
root@debian:/home/serveur/x10/perl#


mon fichier cm15-A4.pl
    #!/usr/bin/perl -w 
    use Fcntl; 
  
    sysopen( CM15A, "/dev/cm15a0", O_RDWR |O_NOCTTY | O_NONBLOCK ) || die "Module cm15a.ko non charge $!"; 
    syswrite CM15A, pack( "CC", 4, 0x6A ), 2; 
    sleep 1;        # can be less 
    syswrite CM15A, pack( "CC", 6, 0x6A ), 2;      # ON 
    #syswrite CM15A, pack( "CC", 6, 0x63 ), 2;       # OFF 
    close( CM15A ); 


Merci.

A voir également:

6 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
Modifié par dubcek le 24/04/2012 à 09:52
chez moi je n'ai pas d'erreur, il s'arrête au sysopen
quelle version de perl ? perl --version
essayer avec perl cm15-A4.pl
que répond ls -l /usr/bin/perl
1
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
24 avril 2012 à 08:22
hello
le fichier vient de Windows ?
qu'affiche
cat -A  cm15-A4.pl 
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié par xunil2003 le 24/04/2012 à 09:40
Bonjour,

Non, je l'ai créé sur linux pour une utilisation linux.

root@debian:/home/serveur/x10/perl# cat -A  cm15-A4.pl  
    #!/usr/bin/perl -w$ 
    use Fcntl;$ 
$ 
    sysopen( CM15A, "/dev/cm15a0", O_RDWR |O_NOCTTY | O_NONBLOCK ) || die "Module cm15a.ko non charge $!";$ 
    syswrite CM15A, pack( "CC", 4, 0x6A ), 2;$ 
    sleep 1;        # can be less$ 
    syswrite CM15A, pack( "CC", 6, 0x6A ), 2;      # ON$ 
    #syswrite CM15A, pack( "CC", 6, 0x63 ), 2;       # OFF$ 
    close( CM15A ); $ 
root@debian:/home/serveur/x10/perl# 


Merci.
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
24 avril 2012 à 10:05
Bonjour,

Version
root@debian:/home/serveur/x10/perl# perl --version 

This is perl, v5.10.1 (*) built for arm-linux-gnueabi-thread-multi
(with 56 registered patches, see perl -V for more detail)

Copyright 1987-2009, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at https://www.perl.org/ the Perl Home Page.

root@debian:/home/serveur/x10/perl# 



La ca marche

root@debian:/home/serveur/x10/perl# perl cm15-A4.pl 
root@debian:/home/serveur/x10/perl# 


Pourtant hier j'ai fait un test avec un fichier nommé toto.pl pour voir si cela était du a perl.

root@debian:/home/serveur/x10/perl# ./toto.pl
Bonjour
root@debian:/home/serveur/x10/perl#


toto.pl
root@debian:/home/serveur/x10/perl# cat -A  toto.pl 
#!/usr/bin/perl$
$
print("Bonjour\n"); $
root@debian:/home/serveur/x10/perl# 



Sous linux on ne peut pas éxecuter un fichier perl si on le rent executable comme ceci
./nomfichierperl.pl il faut obligatoirement mettre perl avant.

En théhorie sa marche pour "perl cm15-A4.pl" mais le script ne c'est pas exécuté chez moi ?

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
24 avril 2012 à 10:09
on peut exécuter un script avec ./script si la première ligne contient #!/usr/bin/perl
essaye d'éditer ton script de supprimer la premère ligne et la recréer
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
24 avril 2012 à 10:28
Bonjour,


Ok, ca marche .
root@debian:/home/serveur/x10/perl# ./cm15-A4.pl 
root@debian:/home/serveur/x10/perl# 


Seulement le script ne fonctionne pas par lui même , il fonctionne depuis le terminal mais il n'as pas exécuté l'ordre ou alors j'ai fait une erreur dans le code.
logiquement il doit allumer une lumière domotique.

Merci.
0