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
dominix
Bonjour
salut
...
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`;
truc pour comprendre : $createfile est une "variable" et ce qui est entouré de ` ` est exécuté dans un shell
open (IN, "xscreensaver-command -watch |"); while (<IN>) { if (m/^(BLANK|LOCK)/) { chomp( $createfile );
ici ça fait quelque chose sur une variable -> truc : cette variable est vide
} elsif (m/^UNBLANK/) { chomp( $deletefile );
et là pareil.
} }
Je ne vois pas pourquoi il ne marche pas!
il marche tres bien, il fait ce que tu lui dit de faire
Si quelqu'un a une petite idée, ça serait gentil de m'aider!
le probleme c'est ce que tu pense que ca fait. essaye de mettre une "action" dans la boucle.
Merci Brice
Bonjour
salut
...
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`;
truc pour comprendre :
$createfile est une "variable"
et ce qui est entouré de ` ` est exécuté dans un shell
open (IN, "xscreensaver-command -watch |");
while (<IN>) {
if (m/^(BLANK|LOCK)/) {
chomp( $createfile );
ici ça fait quelque chose sur une variable
-> truc : cette variable est vide
} elsif (m/^UNBLANK/) {
chomp( $deletefile );
et là pareil.
}
}
Je ne vois pas pourquoi il ne marche pas!
il marche tres bien, il fait ce que tu lui dit de faire
Si quelqu'un a une petite idée, ça serait gentil de m'aider!
le probleme c'est ce que tu pense que ca fait.
essaye de mettre une "action" dans la boucle.
# creates a file if xscreensaver is running or locked my $createfile = `touch ~/.fvwm/scripts/xscreen_active`; my $deletefile = `rm ~/.fvwm/scripts/xscreen_active`;
truc pour comprendre : $createfile est une "variable" et ce qui est entouré de ` ` est exécuté dans un shell
open (IN, "xscreensaver-command -watch |"); while (<IN>) { if (m/^(BLANK|LOCK)/) { chomp( $createfile );
ici ça fait quelque chose sur une variable -> truc : cette variable est vide
} elsif (m/^UNBLANK/) { chomp( $deletefile );
et là pareil.
} }
Je ne vois pas pourquoi il ne marche pas!
il marche tres bien, il fait ce que tu lui dit de faire
Si quelqu'un a une petite idée, ça serait gentil de m'aider!
le probleme c'est ce que tu pense que ca fait. essaye de mettre une "action" dans la boucle.
Merci Brice
Paul Gaborit
À (at) 19 Jul 2005 10:27:44 -0700, écrivait (wrote):
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`;
Ici, les deux commandes ci-dessus (le 'touch' et le 'rm') ont déjà été exécutées.
Écrivez plutôt :
my $createfile = 'touch ~/.fvwm/scripts/xscreen_active'; my $deletefile = 'rm ~/.fvwm/scripts/xscreen_active';
pour stocker les commandes dans des variables au lieu de stocker le résultat de leur exécution...
open (IN, "xscreensaver-command -watch |"); while (<IN>) { if (m/^(BLANK|LOCK)/) { chomp( $createfile ); system($createfile);# le chomp ne sert à rien...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) 19 Jul 2005 10:27:44 -0700,
bricem13@yahoo.com écrivait (wrote):
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`;
Ici, les deux commandes ci-dessus (le 'touch' et le 'rm') ont déjà été
exécutées.
Écrivez plutôt :
my $createfile = 'touch ~/.fvwm/scripts/xscreen_active';
my $deletefile = 'rm ~/.fvwm/scripts/xscreen_active';
pour stocker les commandes dans des variables au lieu de stocker le
résultat de leur exécution...
open (IN, "xscreensaver-command -watch |");
while (<IN>) {
if (m/^(BLANK|LOCK)/) {
chomp( $createfile );
system($createfile);# le chomp ne sert à rien...
À (at) 19 Jul 2005 10:27:44 -0700, écrivait (wrote):
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`;
Ici, les deux commandes ci-dessus (le 'touch' et le 'rm') ont déjà été exécutées.
Écrivez plutôt :
my $createfile = 'touch ~/.fvwm/scripts/xscreen_active'; my $deletefile = 'rm ~/.fvwm/scripts/xscreen_active';
pour stocker les commandes dans des variables au lieu de stocker le résultat de leur exécution...
open (IN, "xscreensaver-command -watch |"); while (<IN>) { if (m/^(BLANK|LOCK)/) { chomp( $createfile ); system($createfile);# le chomp ne sert à rien...
je vais aussi jeter un oeil sur votre page perso et le cours perl qui y est!
Brice
Laurent Wacrenier
écrit:
#!/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 |");
Quite à lancer un shell par ligne, refaire ça shell.
bricem13@yahoo.com <bricem13@yahoo.com> écrit:
#!/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 |");
Quite à lancer un shell par ligne, refaire ça shell.
# 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 |");
Quite à lancer un shell par ligne, refaire ça shell.