J'ai fait un petit script perl (malgr=E9 que je ne sache que peu - pas -
programmer en perl). Il doit simplement r=E9agir =E0 xscreensaver et
cr=E9er un fichier vide lorsque celui-ci est actif mais il ne marche pas
et je ne sais pas comment le d=E9bogguer...
Le script est le suivant:
#!/usr/bin/perl
# creates a file if xscreensaver is running or locked
my $createfile =3D `touch ~/.fvwm/scripts/xscreen_active`;
my $deletefile =3D `rm ~/.fvwm/scripts/xscreen_active`;
open (IN, "xscreensaver-command -watch |");
while (<IN>) {
if (m/^(BLANK|LOCK)/) {
chomp( $createfile );
} elsif (m/^UNBLANK/) {
chomp( $deletefile );
}
}
Je ne vois pas pourquoi il ne marche pas!
Si quelqu'un a une petite id=E9e, =E7a serait gentil de m'aider!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Emmanuel Florac
Le Tue, 19 Jul 2005 13:57:23 -0700, bricem13 a écrit :
Bonjour
J'ai fait un petit script perl (malgré que je ne sache que peu - pas - programmer en perl). Il doit simplement réagir à xscreensaver et créer un fichier vide lorsque celui-ci est actif mais il ne marche pas et je ne sais pas comment le débogguer...
Le script est le suivant:
#!/usr/bin/perl
# creates a file if xscreensaver is running or locked my $createfile = `touch ~/.fvwm/scripts/xscreen_active`; my $deletefile = `rm ~/.fvwm/scripts/xscreen_active`;
open (IN, "xscreensaver-command -watch |"); while (<IN>) { if (m/^(BLANK|LOCK)/) { chomp( $createfile ); } elsif (m/^UNBLANK/) { chomp( $deletefile ); }
}
Je ne vois pas pourquoi il ne marche pas!
Moi je vois bien :)
la forme :
my $toto=`tata`
éxécute la commande "tata" et met le résultat dans la variable $toto. Bien entendu ce n'est pas ce que tu veux faire, je pense... De même,
chomp($toto)
retire le caractère fin de ligne (quelqu'il soit) de la variable $toto... Je ne pense pas non plus que ce soit le but recherché! Remplace les lignes "chomp(...)" par les lignes $ttt=`..` plutôt.
PS ce n'est pas du tout le bon groupe.... fr.comp.lang.perl plutôt.
-- Si non confectus non reficiat.
Le Tue, 19 Jul 2005 13:57:23 -0700, bricem13 a écrit :
Bonjour
J'ai fait un petit script perl (malgré que je ne sache que peu - pas -
programmer en perl). Il doit simplement réagir à xscreensaver et
créer un fichier vide lorsque celui-ci est actif mais il ne marche pas
et je ne sais pas comment le débogguer...
Le script est le suivant:
#!/usr/bin/perl
# creates a file if xscreensaver is running or locked
my $createfile = `touch ~/.fvwm/scripts/xscreen_active`;
my $deletefile = `rm ~/.fvwm/scripts/xscreen_active`;
open (IN, "xscreensaver-command -watch |");
while (<IN>) {
if (m/^(BLANK|LOCK)/) {
chomp( $createfile );
} elsif (m/^UNBLANK/) {
chomp( $deletefile );
}
}
Je ne vois pas pourquoi il ne marche pas!
Moi je vois bien :)
la forme :
my $toto=`tata`
éxécute la commande "tata" et met le résultat dans la variable $toto.
Bien entendu ce n'est pas ce que tu veux faire, je pense... De même,
chomp($toto)
retire le caractère fin de ligne (quelqu'il soit) de la variable
$toto... Je ne pense pas non plus que ce soit le but recherché!
Remplace les lignes "chomp(...)" par les lignes $ttt=`..` plutôt.
PS ce n'est pas du tout le bon groupe.... fr.comp.lang.perl plutôt.
Le Tue, 19 Jul 2005 13:57:23 -0700, bricem13 a écrit :
Bonjour
J'ai fait un petit script perl (malgré que je ne sache que peu - pas - programmer en perl). Il doit simplement réagir à xscreensaver et créer un fichier vide lorsque celui-ci est actif mais il ne marche pas et je ne sais pas comment le débogguer...
Le script est le suivant:
#!/usr/bin/perl
# creates a file if xscreensaver is running or locked my $createfile = `touch ~/.fvwm/scripts/xscreen_active`; my $deletefile = `rm ~/.fvwm/scripts/xscreen_active`;
open (IN, "xscreensaver-command -watch |"); while (<IN>) { if (m/^(BLANK|LOCK)/) { chomp( $createfile ); } elsif (m/^UNBLANK/) { chomp( $deletefile ); }
}
Je ne vois pas pourquoi il ne marche pas!
Moi je vois bien :)
la forme :
my $toto=`tata`
éxécute la commande "tata" et met le résultat dans la variable $toto. Bien entendu ce n'est pas ce que tu veux faire, je pense... De même,
chomp($toto)
retire le caractère fin de ligne (quelqu'il soit) de la variable $toto... Je ne pense pas non plus que ce soit le but recherché! Remplace les lignes "chomp(...)" par les lignes $ttt=`..` plutôt.
PS ce n'est pas du tout le bon groupe.... fr.comp.lang.perl plutôt.