j'ai une question assez simple : j'aimerai inclure le contenu d'un
script perl, dans un autre script perl, un peu comme avec un
#include en langage C, ou require() en php.
Comment puis-je faire cela ?
J'ai bien sur parcouru la doc en ligne de perl, cependant, j'ai un
gros probleme avec : je trouve qu'il est parfois assez dur d'y trouver
une information precise, comme ma question au-dessus.
J'y trouve bien potentiellement des solutions à base de créations de
modules perl, mais j'aimerai éviter ça, ne voulant pas forcément
inclure des fonctions, mais plutôt définir des variables globales dans
un fichier externe au fichier principal.
qui rendrait $toto global au programme *entièrement* serait bien plus naturel (et donc par extension bien plus perlien) à utiliser.
Desole d'intervenir un peu tard dans le fil...
Si tu veux une variable 'globale' accessible partout, tu peux la mettre dans la table des symboles:
$::MY_VAR = 'hello';
A partir de la tu peux acceder a $::MY_VAR de partout. J'ai decouvert ca en matant le source du projet bugzilla.
Sinon c'est quand meme plus propre AMHA de definir une variable globale dans son package et d'acceder a la variable en prefixant avec le package, i.e.
package MyPackage; our $FOO = 'bar';
package main; print $MyPackage::FOO;
D'autre part, si tu veux faire de la programmation CGI avec Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant tes variables globales au debut du programme.
Jean-Michel.
J'avoue qu'une fonction du genre 'global' avec
global $toto ;
qui rendrait $toto global au programme *entièrement* serait bien plus
naturel (et donc par extension bien plus perlien) à utiliser.
Desole d'intervenir un peu tard dans le fil...
Si tu veux une variable 'globale' accessible partout, tu peux la mettre
dans la table des symboles:
$::MY_VAR = 'hello';
A partir de la tu peux acceder a $::MY_VAR de partout. J'ai decouvert ca
en matant le source du projet bugzilla.
Sinon c'est quand meme plus propre AMHA de definir une variable globale
dans son package et d'acceder a la variable en prefixant avec le
package, i.e.
package MyPackage;
our $FOO = 'bar';
package main;
print $MyPackage::FOO;
D'autre part, si tu veux faire de la programmation CGI avec
Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant
tes variables globales au debut du programme.
qui rendrait $toto global au programme *entièrement* serait bien plus naturel (et donc par extension bien plus perlien) à utiliser.
Desole d'intervenir un peu tard dans le fil...
Si tu veux une variable 'globale' accessible partout, tu peux la mettre dans la table des symboles:
$::MY_VAR = 'hello';
A partir de la tu peux acceder a $::MY_VAR de partout. J'ai decouvert ca en matant le source du projet bugzilla.
Sinon c'est quand meme plus propre AMHA de definir une variable globale dans son package et d'acceder a la variable en prefixant avec le package, i.e.
package MyPackage; our $FOO = 'bar';
package main; print $MyPackage::FOO;
D'autre part, si tu veux faire de la programmation CGI avec Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant tes variables globales au debut du programme.
Jean-Michel.
Patrice Karatchentzeff
Jean-Michel Hiver writes:
[...]
Si tu veux une variable 'globale' accessible partout, tu peux la mettre dans la table des symboles:
$::MY_VAR = 'hello';
A partir de la tu peux acceder a $::MY_VAR de partout. J'ai decouvert ca en matant le source du projet bugzilla.
excellentissime... je ne connaissais pas.
Sinon c'est quand meme plus propre AMHA de definir une variable globale dans son package et d'acceder a la variable en prefixant avec le package, i.e.
C'est plus propre mais c'est lourd...
[...]
D'autre part, si tu veux faire de la programmation CGI avec Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant tes variables globales au debut du programme.
Non, justement, la requête des gens qui demandent de pouvoir globaliser une variable à un programme est justement de pouvoir écrire un fichier *à part* dans lequel on collerait toutes les variables...
Si tu veux une variable 'globale' accessible partout, tu peux la
mettre dans la table des symboles:
$::MY_VAR = 'hello';
A partir de la tu peux acceder a $::MY_VAR de partout. J'ai decouvert
ca en matant le source du projet bugzilla.
excellentissime... je ne connaissais pas.
Sinon c'est quand meme plus propre AMHA de definir une variable
globale dans son package et d'acceder a la variable en prefixant avec
le package, i.e.
C'est plus propre mais c'est lourd...
[...]
D'autre part, si tu veux faire de la programmation CGI avec
Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant
tes variables globales au debut du programme.
Non, justement, la requête des gens qui demandent de pouvoir
globaliser une variable à un programme est justement de pouvoir écrire
un fichier *à part* dans lequel on collerait toutes les variables...
Si tu veux une variable 'globale' accessible partout, tu peux la mettre dans la table des symboles:
$::MY_VAR = 'hello';
A partir de la tu peux acceder a $::MY_VAR de partout. J'ai decouvert ca en matant le source du projet bugzilla.
excellentissime... je ne connaissais pas.
Sinon c'est quand meme plus propre AMHA de definir une variable globale dans son package et d'acceder a la variable en prefixant avec le package, i.e.
C'est plus propre mais c'est lourd...
[...]
D'autre part, si tu veux faire de la programmation CGI avec Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant tes variables globales au debut du programme.
Non, justement, la requête des gens qui demandent de pouvoir globaliser une variable à un programme est justement de pouvoir écrire un fichier *à part* dans lequel on collerait toutes les variables...
j'ai une question assez simple : j'aimerai inclure le contenu d'un script perl, dans un autre script perl, un peu comme avec un #include en langage C, ou require() en php.
Il permet d'inclure un fichier dans un script avant la compilation.
Par exemple, le fichier 'myvar.inc' comprenant les deux lignes :
my $v="Bonne année à tous !"; my @b=qw/ mais ou et donc or ni car /;
est inclus dans le script suivant :
#!/usr/bin/perl -w use strict; use Filter::Include;
include "myvar.inc";
$,="n"; print $v, @b;
__END__
HTH
-- J-L.M.
Dans l'article <vfhoetvtbg5.fsf@alea.net>, vynce@alea.invalid a dit...
Bonjour à tous,
j'ai une question assez simple : j'aimerai inclure le contenu d'un
script perl, dans un autre script perl, un peu comme avec un
#include en langage C, ou require() en php.
j'ai une question assez simple : j'aimerai inclure le contenu d'un script perl, dans un autre script perl, un peu comme avec un #include en langage C, ou require() en php.
Il permet d'inclure un fichier dans un script avant la compilation.
Par exemple, le fichier 'myvar.inc' comprenant les deux lignes :
my $v="Bonne année à tous !"; my @b=qw/ mais ou et donc or ni car /;
est inclus dans le script suivant :
#!/usr/bin/perl -w use strict; use Filter::Include;
include "myvar.inc";
$,="n"; print $v, @b;
__END__
HTH
-- J-L.M.
Jean-Michel Hiver
Sinon c'est quand meme plus propre AMHA de definir une variable globale dans son package et d'acceder a la variable en prefixant avec le package, i.e.
C'est plus propre mais c'est lourd...
Oui mais au moins tu sais d'ou ca vient... D'une maniere generale les fonctions et les variables exportes je trouve ca beurk. Je dis ca parce que je me suis inflige cette erreur moi meme...
D'autre part, si tu veux faire de la programmation CGI avec Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant tes variables globales au debut du programme.
Non, justement, la requête des gens qui demandent de pouvoir globaliser une variable à un programme est justement de pouvoir écrire un fichier *à part* dans lequel on collerait toutes les variables...
Je voulais dire 'localisant' dans le contexte de:
local $::MY_VAR = undef;
Cordialement, Jean-Michel.
Sinon c'est quand meme plus propre AMHA de definir une variable
globale dans son package et d'acceder a la variable en prefixant avec
le package, i.e.
C'est plus propre mais c'est lourd...
Oui mais au moins tu sais d'ou ca vient... D'une maniere generale les
fonctions et les variables exportes je trouve ca beurk. Je dis ca parce
que je me suis inflige cette erreur moi meme...
D'autre part, si tu veux faire de la programmation CGI avec
Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant
tes variables globales au debut du programme.
Non, justement, la requête des gens qui demandent de pouvoir
globaliser une variable à un programme est justement de pouvoir écrire
un fichier *à part* dans lequel on collerait toutes les variables...
Sinon c'est quand meme plus propre AMHA de definir une variable globale dans son package et d'acceder a la variable en prefixant avec le package, i.e.
C'est plus propre mais c'est lourd...
Oui mais au moins tu sais d'ou ca vient... D'une maniere generale les fonctions et les variables exportes je trouve ca beurk. Je dis ca parce que je me suis inflige cette erreur moi meme...
D'autre part, si tu veux faire de la programmation CGI avec Apache::Registry, tu t'evitera beaucoup de maux de tetes en localisant tes variables globales au debut du programme.
Non, justement, la requête des gens qui demandent de pouvoir globaliser une variable à un programme est justement de pouvoir écrire un fichier *à part* dans lequel on collerait toutes les variables...
Je voulais dire 'localisant' dans le contexte de:
local $::MY_VAR = undef;
Cordialement, Jean-Michel.
Frantz
Vincent Hiribarren écrivait news::
Bonjour à tous,
j'ai une question assez simple : j'aimerai inclure le contenu d'un script perl, dans un autre script perl, un peu comme avec un #include en langage C, ou require() en php.
Comment puis-je faire cela ?
J'ai bien sur parcouru la doc en ligne de perl, cependant, j'ai un gros probleme avec : je trouve qu'il est parfois assez dur d'y trouver une information precise, comme ma question au-dessus.
J'y trouve bien potentiellement des solutions à base de créations de modules perl, mais j'aimerai éviter ça, ne voulant pas forcément inclure des fonctions, mais plutôt définir des variables globales dans un fichier externe au fichier principal.
Merci d'avance pour vos réponses.
exemple de fichier utliser par require.
Programme Main require "bidule.pl"; &Bidule();
fichier bidule.pl sub Bidule {
..... } 1;
Vincent Hiribarren <vynce@alea.invalid> écrivait
news:vfhoetvtbg5.fsf@alea.net:
Bonjour à tous,
j'ai une question assez simple : j'aimerai inclure le contenu d'un
script perl, dans un autre script perl, un peu comme avec un
#include en langage C, ou require() en php.
Comment puis-je faire cela ?
J'ai bien sur parcouru la doc en ligne de perl, cependant, j'ai un
gros probleme avec : je trouve qu'il est parfois assez dur d'y trouver
une information precise, comme ma question au-dessus.
J'y trouve bien potentiellement des solutions à base de créations de
modules perl, mais j'aimerai éviter ça, ne voulant pas forcément
inclure des fonctions, mais plutôt définir des variables globales dans
un fichier externe au fichier principal.
j'ai une question assez simple : j'aimerai inclure le contenu d'un script perl, dans un autre script perl, un peu comme avec un #include en langage C, ou require() en php.
Comment puis-je faire cela ?
J'ai bien sur parcouru la doc en ligne de perl, cependant, j'ai un gros probleme avec : je trouve qu'il est parfois assez dur d'y trouver une information precise, comme ma question au-dessus.
J'y trouve bien potentiellement des solutions à base de créations de modules perl, mais j'aimerai éviter ça, ne voulant pas forcément inclure des fonctions, mais plutôt définir des variables globales dans un fichier externe au fichier principal.
Bon je réponds ici à une question que j'ai reçu en privé. La question était: est-ce que l'instruction do utilise require ou non.
La réponse est non. 'do' est un autre moyen d'écrire
eval `cat bidule.pl`;
En gros do éxecute le contenu du fichier bidule.pl.
Contrairement à 'use' ou 'require', 'do' ne fait pas de gestion d'erreur et il est plus "difficile" de savoir si un problème a eu lieu pendant le "sourcing" du fichier.
Donc je recommande l'utilisation de 'do' pour des fichiers de configurations.
Pour le reste (chargement de module, fonctions,...) 'use' ou 'require' sont plus que recommandés.
-- Xavier MAILLARD (GnuPG: 1024D/1E028EA5) EmacsOS user (http://emacsfr.org) APRIL (http://www.april.org)
On 21 Jan 2004, Xavier Maillard wrote:
on 18 jan 2004, frantz wrote:
exemple de fichier utliser par require.
programme main
require "bidule.pl";
&bidule();
fichier bidule.pl
sub bidule {
.....
}
1;
Ou encore:
do 'bidule.pl';
Bon je réponds ici à une question que j'ai reçu en privé. La question
était: est-ce que l'instruction do utilise require ou non.
La réponse est non. 'do' est un autre moyen d'écrire
eval `cat bidule.pl`;
En gros do éxecute le contenu du fichier bidule.pl.
Contrairement à 'use' ou 'require', 'do' ne fait pas de gestion
d'erreur et il est plus "difficile" de savoir si un problème a eu lieu
pendant le "sourcing" du fichier.
Donc je recommande l'utilisation de 'do' pour des fichiers de
configurations.
Pour le reste (chargement de module, fonctions,...) 'use' ou 'require'
sont plus que recommandés.
--
Xavier MAILLARD (GnuPG: 1024D/1E028EA5)
EmacsOS user (http://emacsfr.org)
APRIL (http://www.april.org)
Bon je réponds ici à une question que j'ai reçu en privé. La question était: est-ce que l'instruction do utilise require ou non.
La réponse est non. 'do' est un autre moyen d'écrire
eval `cat bidule.pl`;
En gros do éxecute le contenu du fichier bidule.pl.
Contrairement à 'use' ou 'require', 'do' ne fait pas de gestion d'erreur et il est plus "difficile" de savoir si un problème a eu lieu pendant le "sourcing" du fichier.
Donc je recommande l'utilisation de 'do' pour des fichiers de configurations.
Pour le reste (chargement de module, fonctions,...) 'use' ou 'require' sont plus que recommandés.
-- Xavier MAILLARD (GnuPG: 1024D/1E028EA5) EmacsOS user (http://emacsfr.org) APRIL (http://www.april.org)