if ( $opt_dlmkrc == 1 )
{
if ( ! -e $ENV{HOME}/.monprog/ ) << ligne 228
{
mkdir $ENV{HOME}/.monprog/;
print ".monprog/ $DLTXTISCREATED";
} << ligne 232
if ( ! -e $ENV{HOME}/.monprog/monprog.rc ) {
system("cp /etc/monprog/monprog.rc $ENV{HOME}/.monprog/");
print ".monprog/monprog.rc $DLTXTISCREATED";
}
if ( ! -e $ENV{HOME}/.monprog/playlist.rc ) {
system("cp /etc/monprog/playlist.rc \
$ENV{HOME}/.monprog/");
print ".monprog/playlist.rc \
$DLTXTISCREATED";
}
exit;
}
nicolas@monime:bin> bin/monprog.pl --dlmkrc
syntax error at bin/monprog.pl line 228, near "/."
syntax error at bin/monprog.pl line 232, near "}"
Execution of bin/monprog.pl aborted due to compilation errors.
Bon, je n'ai pas testé si le fichier ~/.monprog/ existait et était un
répertoire, mais ça foire. Il faut que je rajoute des parenthèses
quelquepart ?
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme
on crée un répertoire alors j'ai utilisé system...
nicolas patrois : pts noir asocial
--
PEACE
M : La guerre, ça amène la mort, les épidémie, la vermine... la souffrance, la destruction, la peur...
P : ...Et les pacifistes !
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
oups
nicolas wrote:
J'ai des tests qui foirent :
if ( $opt_dlmkrc == 1 ) { if ( ! -e $ENV{HOME}/.monprog/ ) << ligne 228 { mkdir $ENV{HOME}/.monprog/; print ".monprog/ $DLTXTISCREATED"; } << ligne 232 if ( ! -e $ENV{HOME}/.monprog/monprog.rc ) { system("cp /etc/monprog/monprog.rc $ENV{HOME}/.monprog/"); print ".monprog/monprog.rc $DLTXTISCREATED"; } if ( ! -e $ENV{HOME}/.monprog/playlist.rc ) { system("cp /etc/monprog/playlist.rc $ENV{HOME}/.monprog/"); print ".monprog/playlist.rc $DLTXTISCREATED"; } exit; }
:bin> bin/monprog.pl --dlmkrc syntax error at bin/monprog.pl line 228, near "/." syntax error at bin/monprog.pl line 232, near "}" Execution of bin/monprog.pl aborted due to compilation errors.
Bon, je n'ai pas testé si le fichier ~/.monprog/ existait et était un répertoire, mais ça foire. Il faut que je rajoute des parenthèses quelquepart ?
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme on crée un répertoire alors j'ai utilisé system...
nicolas patrois : pts noir asocial
hum, salut,
manquerais pas des "" qqpart ? ;) comme : if ( ! -e "$ENV{HOME}/.monprog/" ) << ligne 228
Cordialement,
-- oups
my mail: http://oupsinet.free.fr/mail.html
nicolas wrote:
J'ai des tests qui foirent :
if ( $opt_dlmkrc == 1 )
{
if ( ! -e $ENV{HOME}/.monprog/ ) << ligne 228
{
mkdir $ENV{HOME}/.monprog/;
print ".monprog/ $DLTXTISCREATED";
} << ligne 232
if ( ! -e $ENV{HOME}/.monprog/monprog.rc ) {
system("cp /etc/monprog/monprog.rc $ENV{HOME}/.monprog/");
print ".monprog/monprog.rc $DLTXTISCREATED";
}
if ( ! -e $ENV{HOME}/.monprog/playlist.rc ) {
system("cp /etc/monprog/playlist.rc
$ENV{HOME}/.monprog/");
print ".monprog/playlist.rc
$DLTXTISCREATED";
}
exit;
}
nicolas@monime:bin> bin/monprog.pl --dlmkrc
syntax error at bin/monprog.pl line 228, near "/."
syntax error at bin/monprog.pl line 232, near "}"
Execution of bin/monprog.pl aborted due to compilation errors.
Bon, je n'ai pas testé si le fichier ~/.monprog/ existait et était un
répertoire, mais ça foire. Il faut que je rajoute des parenthèses
quelquepart ?
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme
on crée un répertoire alors j'ai utilisé system...
nicolas patrois : pts noir asocial
hum, salut,
manquerais pas des "" qqpart ? ;) comme :
if ( ! -e "$ENV{HOME}/.monprog/" ) << ligne 228
if ( $opt_dlmkrc == 1 ) { if ( ! -e $ENV{HOME}/.monprog/ ) << ligne 228 { mkdir $ENV{HOME}/.monprog/; print ".monprog/ $DLTXTISCREATED"; } << ligne 232 if ( ! -e $ENV{HOME}/.monprog/monprog.rc ) { system("cp /etc/monprog/monprog.rc $ENV{HOME}/.monprog/"); print ".monprog/monprog.rc $DLTXTISCREATED"; } if ( ! -e $ENV{HOME}/.monprog/playlist.rc ) { system("cp /etc/monprog/playlist.rc $ENV{HOME}/.monprog/"); print ".monprog/playlist.rc $DLTXTISCREATED"; } exit; }
:bin> bin/monprog.pl --dlmkrc syntax error at bin/monprog.pl line 228, near "/." syntax error at bin/monprog.pl line 232, near "}" Execution of bin/monprog.pl aborted due to compilation errors.
Bon, je n'ai pas testé si le fichier ~/.monprog/ existait et était un répertoire, mais ça foire. Il faut que je rajoute des parenthèses quelquepart ?
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme on crée un répertoire alors j'ai utilisé system...
nicolas patrois : pts noir asocial
hum, salut,
manquerais pas des "" qqpart ? ;) comme : if ( ! -e "$ENV{HOME}/.monprog/" ) << ligne 228
Cordialement,
-- oups
my mail: http://oupsinet.free.fr/mail.html
Rue des Prairies
nicolas wrote:
J'ai des tests qui foirent :
if ( $opt_dlmkrc == 1 ) { if ( ! -e $ENV{HOME}/.monprog/ ) << ligne 228
:bin> bin/monprog.pl --dlmkrc syntax error at bin/monprog.pl line 228, near "/." syntax error at bin/monprog.pl line 232, near "}" Execution of bin/monprog.pl aborted due to compilation errors.
Bon, je n'ai pas testé si le fichier ~/.monprog/ existait et était un répertoire, mais ça foire. Il faut que je rajoute des parenthèses quelquepart ?
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme on crée un répertoire alors j'ai utilisé system...
nicolas patrois : pts noir asocial
Utilise le module File::Copy
Olivier.
nicolas wrote:
J'ai des tests qui foirent :
if ( $opt_dlmkrc == 1 )
{
if ( ! -e $ENV{HOME}/.monprog/ ) << ligne 228
nicolas@monime:bin> bin/monprog.pl --dlmkrc
syntax error at bin/monprog.pl line 228, near "/."
syntax error at bin/monprog.pl line 232, near "}"
Execution of bin/monprog.pl aborted due to compilation errors.
Bon, je n'ai pas testé si le fichier ~/.monprog/ existait et était un
répertoire, mais ça foire. Il faut que je rajoute des parenthèses
quelquepart ?
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme
on crée un répertoire alors j'ai utilisé system...
:bin> bin/monprog.pl --dlmkrc syntax error at bin/monprog.pl line 228, near "/." syntax error at bin/monprog.pl line 232, near "}" Execution of bin/monprog.pl aborted due to compilation errors.
Bon, je n'ai pas testé si le fichier ~/.monprog/ existait et était un répertoire, mais ça foire. Il faut que je rajoute des parenthèses quelquepart ?
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme on crée un répertoire alors j'ai utilisé system...
nicolas patrois : pts noir asocial
Utilise le module File::Copy
Olivier.
Jérémy JUST
On Sun, 21 Sep 2003 15:08:28 +0200 nicolas wrote:
Avant toute chose:
if ( ! -e $ENV{HOME}/.monprog/ ) if ( ! -e "$ENV{HOME}/.monprog" )
Il faut que je rajoute des parenthèses quelque part ?
Des guillemets doubles. C'est ce que je vois au premier abord. Je ne te garantis pas que ton programme marchera en ne corrigeant que ça.
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme on crée un répertoire alors j'ai utilisé system...
Les commande Perl, c'est open(, "<"), open(, ">") et print. C'est exactement ce que fait cp en C (je te conseille d'aller lire les sources de cp pour t'en rendre compte). Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
Happy perling.
-- Jérémy JUST
On Sun, 21 Sep 2003 15:08:28 +0200
nicolas <nicolas.pNaOtSrPoAiMs@online.fr> wrote:
Avant toute chose:
if ( ! -e $ENV{HOME}/.monprog/ )
if ( ! -e "$ENV{HOME}/.monprog" )
Il faut que je rajoute des parenthèses quelque part ?
Des guillemets doubles.
C'est ce que je vois au premier abord. Je ne te garantis pas que ton
programme marchera en ne corrigeant que ça.
De plus, je n'ai pas trouvé de commande perl pour copier un fichier
comme on crée un répertoire alors j'ai utilisé system...
Les commande Perl, c'est open(, "<"), open(, ">") et print. C'est
exactement ce que fait cp en C (je te conseille d'aller lire les sources
de cp pour t'en rendre compte).
Mais il est généralement plus simple d'appeler directement cp, sous
réserve de bien tout sécuriser.
Il faut que je rajoute des parenthèses quelque part ?
Des guillemets doubles. C'est ce que je vois au premier abord. Je ne te garantis pas que ton programme marchera en ne corrigeant que ça.
De plus, je n'ai pas trouvé de commande perl pour copier un fichier comme on crée un répertoire alors j'ai utilisé system...
Les commande Perl, c'est open(, "<"), open(, ">") et print. C'est exactement ce que fait cp en C (je te conseille d'aller lire les sources de cp pour t'en rendre compte). Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
Happy perling.
-- Jérémy JUST
nicolas
On Sun, 21 Sep 2003 16:24:56 +0200, Jérémy JUST wrote:
Il faut que je rajoute des parenthèses quelque part ?
Des guillemets doubles.
Voui, ça marche. Merci à tous.
C'est ce que je vois au premier abord. Je ne te garantis pas que ton programme marchera en ne corrigeant que ça.
Les commande Perl, c'est open(, "<"), open(, ">") et print. C'est exactement ce que fait cp en C (je te conseille d'aller lire les sources de cp pour t'en rendre compte). Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc"); mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme est pour mon usage perso et qu'il n'est pas setuid root.
nicolas patrois : pts noir asocial
-- PEACE
M : La guerre, ça amène la mort, les épidémie, la vermine... la souffrance, la destruction, la peur... P : ...Et les pacifistes !
On Sun, 21 Sep 2003 16:24:56 +0200, Jérémy JUST wrote:
Il faut que je rajoute des parenthèses quelque part ?
Des guillemets doubles.
Voui, ça marche. Merci à tous.
C'est ce que je vois au premier abord. Je ne te garantis pas que ton
programme marchera en ne corrigeant que ça.
Les commande Perl, c'est open(, "<"), open(, ">") et print. C'est
exactement ce que fait cp en C (je te conseille d'aller lire les sources
de cp pour t'en rendre compte).
Mais il est généralement plus simple d'appeler directement cp, sous
réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc"); mais
je ne sais pas sécuriser. Enfin, pas grave, vu que le programme est pour
mon usage perso et qu'il n'est pas setuid root.
nicolas patrois : pts noir asocial
--
PEACE
M : La guerre, ça amène la mort, les épidémie, la vermine... la souffrance, la destruction, la peur...
P : ...Et les pacifistes !
On Sun, 21 Sep 2003 16:24:56 +0200, Jérémy JUST wrote:
Il faut que je rajoute des parenthèses quelque part ?
Des guillemets doubles.
Voui, ça marche. Merci à tous.
C'est ce que je vois au premier abord. Je ne te garantis pas que ton programme marchera en ne corrigeant que ça.
Les commande Perl, c'est open(, "<"), open(, ">") et print. C'est exactement ce que fait cp en C (je te conseille d'aller lire les sources de cp pour t'en rendre compte). Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc"); mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme est pour mon usage perso et qu'il n'est pas setuid root.
nicolas patrois : pts noir asocial
-- PEACE
M : La guerre, ça amène la mort, les épidémie, la vermine... la souffrance, la destruction, la peur... P : ...Et les pacifistes !
Jérémy JUST
On Sun, 21 Sep 2003 18:31:51 +0200 nicolas wrote:
Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc"); mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme est pour mon usage perso et qu'il n'est pas setuid root.
Bon, donc si le programme tourne sous ton nom, aucun risque qu'il puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm.
Par contre, n'oublie pas de vérifier que ton cp a marché comme prévu. Pour ça, récupère la valeur de retour de system(), qui est en fait le code de sortie de cp, et vérifie qu'il vaut 0 (= pas d'erreur).
Typiquement: system("cp orig dest") or die "Je n'arrive pas à copier.n" ;
Et je te conseille de préciser que tu veux utiliser /bin/cp, ça t'évitera de te heurter aux alias définis dans certains distributions bien intentionnées (alias cp='cp -i').
-- Jérémy JUST
On Sun, 21 Sep 2003 18:31:51 +0200
nicolas <nicolas.pNaOtSrPoAiMs@online.fr> wrote:
Mais il est généralement plus simple d'appeler directement cp, sous
réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc");
mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme
est pour mon usage perso et qu'il n'est pas setuid root.
Bon, donc si le programme tourne sous ton nom, aucun risque qu'il
puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm.
Par contre, n'oublie pas de vérifier que ton cp a marché comme prévu.
Pour ça, récupère la valeur de retour de system(), qui est en fait le
code de sortie de cp, et vérifie qu'il vaut 0 (= pas d'erreur).
Typiquement:
system("cp orig dest") or die "Je n'arrive pas à copier.n" ;
Et je te conseille de préciser que tu veux utiliser /bin/cp, ça
t'évitera de te heurter aux alias définis dans certains distributions
bien intentionnées (alias cp='cp -i').
Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc"); mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme est pour mon usage perso et qu'il n'est pas setuid root.
Bon, donc si le programme tourne sous ton nom, aucun risque qu'il puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm.
Par contre, n'oublie pas de vérifier que ton cp a marché comme prévu. Pour ça, récupère la valeur de retour de system(), qui est en fait le code de sortie de cp, et vérifie qu'il vaut 0 (= pas d'erreur).
Typiquement: system("cp orig dest") or die "Je n'arrive pas à copier.n" ;
Et je te conseille de préciser que tu veux utiliser /bin/cp, ça t'évitera de te heurter aux alias définis dans certains distributions bien intentionnées (alias cp='cp -i').
-- Jérémy JUST
root
On Sun, 21 Sep 2003 19:49:32 +0200, Jérémy JUST wrote:
On Sun, 21 Sep 2003 18:31:51 +0200 nicolas wrote:
Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc"); mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme est pour mon usage perso et qu'il n'est pas setuid root.
Bon, donc si le programme tourne sous ton nom, aucun risque qu'il puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm.
Par contre, n'oublie pas de vérifier que ton cp a marché comme prévu. Pour ça, récupère la valeur de retour de system(), qui est en fait le code de sortie de cp, et vérifie qu'il vaut 0 (= pas d'erreur).
Typiquement: system("cp orig dest") or die "Je n'arrive pas à copier.n" ;
Trois remarques :
- Comme dit plus haut, pour faire une copie de fichier il vaut mieux utiliser le module `File::Copy' (taper `perldoc File::Copy' pour plus d'informations) qui fourni une fonction copy() et move() indépendante du système d'exploitation.
- Pour l'utilisation de la fonction `system()', il vaut mieux prendre de bonne habitudes et utiliser la forme à plusieurs arguments :
Cette forme est plus «sûre» et permet d'éviter des problèmes avec des noms de fichiers fournis contenant du code shell, par exemple dans le cas ou la variable `$fic1' ou `$fic1' vaudrait "; rm -Rf /"
- Encore au sujet de la fonction `system()', ton `system() or die' ne foncionne pas correctement. Un exemple, si je lance :
$ perl -e 'system("ls /root") or die "Erreur !n"; print "Tout va bien ...n"' ls: /root: Permission denied Tout va bien ... $
L'erreur du `ls' n'est pas detecté, et le programme continue son déroulement normal. La notation correcte est la suivante :
system() == 0 or die "Erreur";
$ perl -e 'system("ls /root") == 0 or die "Erreur !n"; print "Tout va bien ...n"' ls: /root: Permission denied Erreur ! $
Là, l'erreur est bien detecté.
Taper `perldoc -f system' pour plus de détails sur l'utilisation de la fonction system()
Pour résumer donc : - copie de fichier avec le module `File::Copy' - passage des arguments de system() avec une liste : system(@ARGS); - detection des erreurs d'un appel system() avec : system(@ARGS) == 0 or die;
On Sun, 21 Sep 2003 19:49:32 +0200, Jérémy JUST wrote:
On Sun, 21 Sep 2003 18:31:51 +0200
nicolas <nicolas.pNaOtSrPoAiMs@online.fr> wrote:
Mais il est généralement plus simple d'appeler directement cp, sous
réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc");
mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme
est pour mon usage perso et qu'il n'est pas setuid root.
Bon, donc si le programme tourne sous ton nom, aucun risque qu'il
puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm.
Par contre, n'oublie pas de vérifier que ton cp a marché comme prévu.
Pour ça, récupère la valeur de retour de system(), qui est en fait le
code de sortie de cp, et vérifie qu'il vaut 0 (= pas d'erreur).
Typiquement:
system("cp orig dest") or die "Je n'arrive pas à copier.n" ;
Trois remarques :
- Comme dit plus haut, pour faire une copie de fichier il vaut mieux
utiliser le module `File::Copy' (taper `perldoc File::Copy' pour plus
d'informations) qui fourni une fonction copy() et move() indépendante du
système d'exploitation.
- Pour l'utilisation de la fonction `system()', il vaut mieux prendre de
bonne habitudes et utiliser la forme à plusieurs arguments :
Cette forme est plus «sûre» et permet d'éviter des problèmes avec des noms
de fichiers fournis contenant du code shell, par exemple dans le cas ou la
variable `$fic1' ou `$fic1' vaudrait "; rm -Rf /"
- Encore au sujet de la fonction `system()', ton `system() or die' ne
foncionne pas correctement. Un exemple, si je lance :
$ perl -e 'system("ls /root") or die "Erreur !n"; print "Tout va bien ...n"'
ls: /root: Permission denied
Tout va bien ...
$
L'erreur du `ls' n'est pas detecté, et le programme continue son
déroulement normal.
La notation correcte est la suivante :
system() == 0 or die "Erreur";
$ perl -e 'system("ls /root") == 0 or die "Erreur !n"; print "Tout va bien ...n"'
ls: /root: Permission denied
Erreur !
$
Là, l'erreur est bien detecté.
Taper `perldoc -f system' pour plus de détails sur l'utilisation de la
fonction system()
Pour résumer donc :
- copie de fichier avec le module `File::Copy'
- passage des arguments de system() avec une liste :
system(@ARGS);
- detection des erreurs d'un appel system() avec :
system(@ARGS) == 0 or die;
On Sun, 21 Sep 2003 19:49:32 +0200, Jérémy JUST wrote:
On Sun, 21 Sep 2003 18:31:51 +0200 nicolas wrote:
Mais il est généralement plus simple d'appeler directement cp, sous réserve de bien tout sécuriser.
J'ai utilisé system("cp monfichier $ENV{HOME}/.monprog/monprog.rc"); mais je ne sais pas sécuriser. Enfin, pas grave, vu que le programme est pour mon usage perso et qu'il n'est pas setuid root.
Bon, donc si le programme tourne sous ton nom, aucun risque qu'il puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm.
Par contre, n'oublie pas de vérifier que ton cp a marché comme prévu. Pour ça, récupère la valeur de retour de system(), qui est en fait le code de sortie de cp, et vérifie qu'il vaut 0 (= pas d'erreur).
Typiquement: system("cp orig dest") or die "Je n'arrive pas à copier.n" ;
Trois remarques :
- Comme dit plus haut, pour faire une copie de fichier il vaut mieux utiliser le module `File::Copy' (taper `perldoc File::Copy' pour plus d'informations) qui fourni une fonction copy() et move() indépendante du système d'exploitation.
- Pour l'utilisation de la fonction `system()', il vaut mieux prendre de bonne habitudes et utiliser la forme à plusieurs arguments :
Cette forme est plus «sûre» et permet d'éviter des problèmes avec des noms de fichiers fournis contenant du code shell, par exemple dans le cas ou la variable `$fic1' ou `$fic1' vaudrait "; rm -Rf /"
- Encore au sujet de la fonction `system()', ton `system() or die' ne foncionne pas correctement. Un exemple, si je lance :
$ perl -e 'system("ls /root") or die "Erreur !n"; print "Tout va bien ...n"' ls: /root: Permission denied Tout va bien ... $
L'erreur du `ls' n'est pas detecté, et le programme continue son déroulement normal. La notation correcte est la suivante :
system() == 0 or die "Erreur";
$ perl -e 'system("ls /root") == 0 or die "Erreur !n"; print "Tout va bien ...n"' ls: /root: Permission denied Erreur ! $
Là, l'erreur est bien detecté.
Taper `perldoc -f system' pour plus de détails sur l'utilisation de la fonction system()
Pour résumer donc : - copie de fichier avec le module `File::Copy' - passage des arguments de system() avec une liste : system(@ARGS); - detection des erreurs d'un appel system() avec : system(@ARGS) == 0 or die;
Jérémy JUST
On Sun, 21 Sep 2003 23:43:34 +0200 root wrote:
- Pour l'utilisation de la fonction `system()', il vaut mieux prendre de bonne habitudes et utiliser la forme à plusieurs arguments
Certes. Mais dans le cas de Nicolas, ce n'est qu'une bonne habitude pour d'autres situations. C'est en pensant à ça que je lui ai dit: « si le programme tourne sous ton nom, aucun risque qu'il puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm. »
Cette forme est plus «sûre»
Et plus économique en temps d'exécution (je n'ai pas testé, mais ça semblerait naturel).
La notation correcte est la suivante :
system() == 0 or die "Erreur";
Oui. Pardon! J'avais écrit ça par habitude pour la plupart des fonctions; mais il faut penser qu'un programme qui a fonctionné correctement renvoie 0, donc "faux", contrairement à l'intuition. Dans mon code, il fallait remplacer "or" par "and"; mais la notation "== 0" est plus lisible dans ce cas-ci.
Désolé pour cette bêtise.
-- Jérémy JUST
On Sun, 21 Sep 2003 23:43:34 +0200
root <root@localhost.localdomain> wrote:
- Pour l'utilisation de la fonction `system()', il vaut mieux prendre
de bonne habitudes et utiliser la forme à plusieurs arguments
Certes. Mais dans le cas de Nicolas, ce n'est qu'une bonne habitude
pour d'autres situations. C'est en pensant à ça que je lui ai dit:
« si le programme tourne sous ton nom, aucun risque qu'il puisse faire
plus de mal que tu ne pourrais en faire avec cp ou rm. »
Cette forme est plus «sûre»
Et plus économique en temps d'exécution (je n'ai pas testé, mais ça
semblerait naturel).
La notation correcte est la suivante :
system() == 0 or die "Erreur";
Oui. Pardon!
J'avais écrit ça par habitude pour la plupart des fonctions; mais il
faut penser qu'un programme qui a fonctionné correctement renvoie 0,
donc "faux", contrairement à l'intuition.
Dans mon code, il fallait remplacer "or" par "and"; mais la notation
"== 0" est plus lisible dans ce cas-ci.
- Pour l'utilisation de la fonction `system()', il vaut mieux prendre de bonne habitudes et utiliser la forme à plusieurs arguments
Certes. Mais dans le cas de Nicolas, ce n'est qu'une bonne habitude pour d'autres situations. C'est en pensant à ça que je lui ai dit: « si le programme tourne sous ton nom, aucun risque qu'il puisse faire plus de mal que tu ne pourrais en faire avec cp ou rm. »
Cette forme est plus «sûre»
Et plus économique en temps d'exécution (je n'ai pas testé, mais ça semblerait naturel).
La notation correcte est la suivante :
system() == 0 or die "Erreur";
Oui. Pardon! J'avais écrit ça par habitude pour la plupart des fonctions; mais il faut penser qu'un programme qui a fonctionné correctement renvoie 0, donc "faux", contrairement à l'intuition. Dans mon code, il fallait remplacer "or" par "and"; mais la notation "== 0" est plus lisible dans ce cas-ci.