Je precise, je debute sous Perl ;=) merci par avance pour votre indulgence.
Jusqu'ici, j'ai fais quelques script Perl que je fractionne en utilisant de
simple sub ...
J'aimerais faire en sorte que mon programme charge au demarrage l'ensemble
des
"sub" que j'ai fais d'un repertoire afin de les utiliser dans l'appli mais
ne sais pas comment faire.
Par exemple :
J'ai mon appli:
/Dev/Perl/test-process.pl
J'aimerais qu'il charge :
/Dev/Perl/Modules/*.pm
Par exemple j'ai:
/Dev/Perl/Modules/verif-ping.pm
qui contient par exemple:
sub verif-ping {
<mes commandes>
}
pouvoir appeler dans test-process.pl directement le sub via un simple
&verif-ping;
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
Samuel Mouniee
Bonjour,
Je precise, je debute sous Perl ;=) merci par avance pour votre indulge nce. Jusqu'ici, j'ai fais quelques script Perl que je fractionne en utilisant de simple sub ...
J'aimerais faire en sorte que mon programme charge au demarrage l'ensembl e des "sub" que j'ai fais d'un repertoire afin de les utiliser dans l'appli mai s ne sais pas comment faire.
Par exemple : .../... pouvoir appeler dans test-process.pl directement le sub via un simple &verif-ping;
en substance, un truc dans le genre ( à adapter, mais vu l'heure dominicale, je ne suis pas reveillé ) :
sub UNIVERSAL::AUTOLOAD { local $@ = undef; eval " require $AUTOLOAD"; die if $@; goto &$AUTOLOAD; }
en gros si la procedure n'existe pas, le systeme tentera un AUTOLOAD(), ce que fait que AUTOLOAD() est la methode dont vous avez besoin. dedans, il faut charger CORRECTEMENT ( pas comme j'ai fait ) le module, puis faire un saut directement dans la procedure.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la charrue avant les boeufs, tu sais que tu peux faire des groupes de modules et faire un module de chargement de module ce qui quand on debute, est plus maintenable qu'un chargeur on demand de modules ( qui peut faire de superbes bugs ).
Merci d'avance pour votre aide
padkoa :)
.s'nuoM
Bonjour,
Je precise, je debute sous Perl ;=) merci par avance pour votre indulge nce.
Jusqu'ici, j'ai fais quelques script Perl que je fractionne en utilisant de
simple sub ...
J'aimerais faire en sorte que mon programme charge au demarrage l'ensembl e
des
"sub" que j'ai fais d'un repertoire afin de les utiliser dans l'appli mai s
ne sais pas comment faire.
Par exemple :
.../...
pouvoir appeler dans test-process.pl directement le sub via un simple
&verif-ping;
en substance, un truc dans le genre ( à adapter, mais vu l'heure
dominicale, je ne suis pas reveillé ) :
sub UNIVERSAL::AUTOLOAD {
local $@ = undef;
eval " require $AUTOLOAD";
die if $@;
goto &$AUTOLOAD;
}
en gros si la procedure n'existe pas, le systeme tentera un AUTOLOAD(),
ce que fait que AUTOLOAD() est la methode dont vous avez besoin. dedans,
il faut charger CORRECTEMENT ( pas comme j'ai fait ) le module, puis
faire un saut directement dans la procedure.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la
charrue avant les boeufs, tu sais que tu peux faire des groupes de
modules et faire un module de chargement de module ce qui quand on
debute, est plus maintenable qu'un chargeur on demand de modules ( qui
peut faire de superbes bugs ).
Je precise, je debute sous Perl ;=) merci par avance pour votre indulge nce. Jusqu'ici, j'ai fais quelques script Perl que je fractionne en utilisant de simple sub ...
J'aimerais faire en sorte que mon programme charge au demarrage l'ensembl e des "sub" que j'ai fais d'un repertoire afin de les utiliser dans l'appli mai s ne sais pas comment faire.
Par exemple : .../... pouvoir appeler dans test-process.pl directement le sub via un simple &verif-ping;
en substance, un truc dans le genre ( à adapter, mais vu l'heure dominicale, je ne suis pas reveillé ) :
sub UNIVERSAL::AUTOLOAD { local $@ = undef; eval " require $AUTOLOAD"; die if $@; goto &$AUTOLOAD; }
en gros si la procedure n'existe pas, le systeme tentera un AUTOLOAD(), ce que fait que AUTOLOAD() est la methode dont vous avez besoin. dedans, il faut charger CORRECTEMENT ( pas comme j'ai fait ) le module, puis faire un saut directement dans la procedure.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la charrue avant les boeufs, tu sais que tu peux faire des groupes de modules et faire un module de chargement de module ce qui quand on debute, est plus maintenable qu'un chargeur on demand de modules ( qui peut faire de superbes bugs ).
Merci d'avance pour votre aide
padkoa :)
.s'nuoM
Carole Rabon
Bonjour,
Merci beaucoup pour votre reponse ;=)
En faite, ce que je cherche a faire, c'est n'est pas un "AutoLoad" de module quand j'en ai besoin, mais bien de charger systematiquement tous les modules.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la charrue avant les boeufs, tu sais que tu peux faire des groupes de modules et faire un module de chargement de module ce qui quand on debute, est plus maintenable qu'un chargeur on demand de modules ( qui peut faire de superbes bugs ).
Peut etre effectivement qu'un module de chargement et des groupes de module peut faire l'affaire ;=)
En faite, c'est surtout que mon appli fait des kilometres maintenant, en fractionnant en plusieurs fichiers, cela me faciliterait quand meme la vie....
Alors question ;=) comment on fait un "loader de module" ayant pour fonction de lire TOUS les modules ce trouvant dans Modules*.pm comme si je les avais tous mis dans un seul fichier .pl.
merci
Bonjour,
Merci beaucoup pour votre reponse ;=)
En faite, ce que je cherche a faire, c'est n'est pas un "AutoLoad" de module
quand j'en ai besoin,
mais bien de charger systematiquement tous les modules.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la
charrue avant les boeufs, tu sais que tu peux faire des groupes de
modules et faire un module de chargement de module ce qui quand on
debute, est plus maintenable qu'un chargeur on demand de modules ( qui
peut faire de superbes bugs ).
Peut etre effectivement qu'un module de chargement et des groupes
de module peut faire l'affaire ;=)
En faite, c'est surtout que mon appli fait des kilometres maintenant, en
fractionnant en
plusieurs fichiers, cela me faciliterait quand meme la vie....
Alors question ;=) comment on fait un "loader de module" ayant pour fonction
de lire TOUS les modules ce trouvant dans Modules*.pm comme si je les
avais tous mis dans un seul fichier .pl.
En faite, ce que je cherche a faire, c'est n'est pas un "AutoLoad" de module quand j'en ai besoin, mais bien de charger systematiquement tous les modules.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la charrue avant les boeufs, tu sais que tu peux faire des groupes de modules et faire un module de chargement de module ce qui quand on debute, est plus maintenable qu'un chargeur on demand de modules ( qui peut faire de superbes bugs ).
Peut etre effectivement qu'un module de chargement et des groupes de module peut faire l'affaire ;=)
En faite, c'est surtout que mon appli fait des kilometres maintenant, en fractionnant en plusieurs fichiers, cela me faciliterait quand meme la vie....
Alors question ;=) comment on fait un "loader de module" ayant pour fonction de lire TOUS les modules ce trouvant dans Modules*.pm comme si je les avais tous mis dans un seul fichier .pl.
merci
Carole Rabon
Hi
Ok, j'ai trouve des soluces ;=), bon c'est peut etre pas idylique a 100% mais cela depanne ... - J'ai mis mon repertoire module dans @INC - J'appel ma sous-routine par un use Modules::usage - apres, j'appelle via un Usage->message;
cela a l'aire de marcher ;=)
merci a tous ..
"Carole Rabon" a écrit dans le message de news:41723039$0$29497$
Bonjour,
Merci beaucoup pour votre reponse ;=)
En faite, ce que je cherche a faire, c'est n'est pas un "AutoLoad" de module
quand j'en ai besoin, mais bien de charger systematiquement tous les modules.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la charrue avant les boeufs, tu sais que tu peux faire des groupes de modules et faire un module de chargement de module ce qui quand on debute, est plus maintenable qu'un chargeur on demand de modules ( qui peut faire de superbes bugs ).
Peut etre effectivement qu'un module de chargement et des groupes de module peut faire l'affaire ;=)
En faite, c'est surtout que mon appli fait des kilometres maintenant, en fractionnant en plusieurs fichiers, cela me faciliterait quand meme la vie....
Alors question ;=) comment on fait un "loader de module" ayant pour fonction
de lire TOUS les modules ce trouvant dans Modules*.pm comme si je les avais tous mis dans un seul fichier .pl.
merci
Hi
Ok, j'ai trouve des soluces ;=), bon c'est peut etre pas idylique a 100%
mais cela depanne ...
- J'ai mis mon repertoire module dans @INC
- J'appel ma sous-routine par un use Modules::usage
- apres, j'appelle via un Usage->message;
cela a l'aire de marcher ;=)
merci a tous ..
"Carole Rabon" <carole.rabon@laposte.net> a écrit dans le message de
news:41723039$0$29497$626a14ce@news.free.fr...
Bonjour,
Merci beaucoup pour votre reponse ;=)
En faite, ce que je cherche a faire, c'est n'est pas un "AutoLoad" de
module
quand j'en ai besoin,
mais bien de charger systematiquement tous les modules.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la
charrue avant les boeufs, tu sais que tu peux faire des groupes de
modules et faire un module de chargement de module ce qui quand on
debute, est plus maintenable qu'un chargeur on demand de modules ( qui
peut faire de superbes bugs ).
Peut etre effectivement qu'un module de chargement et des groupes
de module peut faire l'affaire ;=)
En faite, c'est surtout que mon appli fait des kilometres maintenant, en
fractionnant en
plusieurs fichiers, cela me faciliterait quand meme la vie....
Alors question ;=) comment on fait un "loader de module" ayant pour
fonction
de lire TOUS les modules ce trouvant dans Modules*.pm comme si je les
avais tous mis dans un seul fichier .pl.
Ok, j'ai trouve des soluces ;=), bon c'est peut etre pas idylique a 100% mais cela depanne ... - J'ai mis mon repertoire module dans @INC - J'appel ma sous-routine par un use Modules::usage - apres, j'appelle via un Usage->message;
cela a l'aire de marcher ;=)
merci a tous ..
"Carole Rabon" a écrit dans le message de news:41723039$0$29497$
Bonjour,
Merci beaucoup pour votre reponse ;=)
En faite, ce que je cherche a faire, c'est n'est pas un "AutoLoad" de module
quand j'en ai besoin, mais bien de charger systematiquement tous les modules.
maintenant, je dois dire que pour quelqu'un qui debute,tu mets un peu la charrue avant les boeufs, tu sais que tu peux faire des groupes de modules et faire un module de chargement de module ce qui quand on debute, est plus maintenable qu'un chargeur on demand de modules ( qui peut faire de superbes bugs ).
Peut etre effectivement qu'un module de chargement et des groupes de module peut faire l'affaire ;=)
En faite, c'est surtout que mon appli fait des kilometres maintenant, en fractionnant en plusieurs fichiers, cela me faciliterait quand meme la vie....
Alors question ;=) comment on fait un "loader de module" ayant pour fonction
de lire TOUS les modules ce trouvant dans Modules*.pm comme si je les avais tous mis dans un seul fichier .pl.
merci
Samuel Mouniee
Hi
Ok, j'ai trouve des soluces ;=), bon c'est peut etre pas idylique a 100 % mais cela depanne ... - J'ai mis mon repertoire module dans @INC
use lib qw( /chemin/vers/mes/modules/ );
- J'appel ma sous-routine par un use Modules::usage - apres, j'appelle via un Usage->message;
cela a l'aire de marcher ;=)
merci a tous ..
sinon perldoc perlmod pour la doc expliquant comment gérer des modules en perl.
.s'nuoM
Hi
Ok, j'ai trouve des soluces ;=), bon c'est peut etre pas idylique a 100 %
mais cela depanne ...
- J'ai mis mon repertoire module dans @INC
use lib qw( /chemin/vers/mes/modules/ );
- J'appel ma sous-routine par un use Modules::usage
- apres, j'appelle via un Usage->message;
cela a l'aire de marcher ;=)
merci a tous ..
sinon perldoc perlmod pour la doc expliquant comment gérer des modules
en perl.
Ok, j'ai trouve des soluces ;=), bon c'est peut etre pas idylique a 100 % mais cela depanne ... - J'ai mis mon repertoire module dans @INC
use lib qw( /chemin/vers/mes/modules/ );
- J'appel ma sous-routine par un use Modules::usage - apres, j'appelle via un Usage->message;
cela a l'aire de marcher ;=)
merci a tous ..
sinon perldoc perlmod pour la doc expliquant comment gérer des modules en perl.
.s'nuoM
jeanpierre.vidal
"Carole Rabon" wrote in message news:<41720398$0$29508$...
Bonjour
Je precise, je debute sous Perl ;=) merci par avance pour votre indulgence. Jusqu'ici, j'ai fais quelques script Perl que je fractionne en utilisant de simple sub ...
J'aimerais faire en sorte que mon programme charge au demarrage l'ensemble des "sub" que j'ai fais d'un repertoire afin de les utiliser dans l'appli mais ne sais pas comment faire.
Par exemple :
J'ai mon appli: /Dev/Perl/test-process.pl
J'aimerais qu'il charge : /Dev/Perl/Modules/*.pm
Par exemple j'ai: /Dev/Perl/Modules/verif-ping.pm
qui contient par exemple: sub verif-ping { <mes commandes> }
pouvoir appeler dans test-process.pl directement le sub via un simple &verif-ping;
Merci d'avance pour votre aide
Un exemple :
__________ fichier main.pl _________ #!perl -w use strict;
require 'fonctions.pl';
my $a = 3; my $b = 5;
print mul($a, $b), "n"; __END__
__________ fichier fonctions.pl __________ #!perl -w use strict;
sub mul { my ($x, $y) = @_; return $x * $y; }
1; # retourne 'vrai' lors du require __END__
Tout se passe comme si la fonction 'mul' était insérée dans le source de 'main.pl'. Sauf que des variables déclarées dans 'main.pl' ne seront pas accessibles dans 'fonctions.pl'... et réciproquement.
Jean-Pierre
"Carole Rabon" <carole.rabon@laposte.net> wrote in message news:<41720398$0$29508$626a14ce@news.free.fr>...
Bonjour
Je precise, je debute sous Perl ;=) merci par avance pour votre indulgence.
Jusqu'ici, j'ai fais quelques script Perl que je fractionne en utilisant de
simple sub ...
J'aimerais faire en sorte que mon programme charge au demarrage l'ensemble
des
"sub" que j'ai fais d'un repertoire afin de les utiliser dans l'appli mais
ne sais pas comment faire.
Par exemple :
J'ai mon appli:
/Dev/Perl/test-process.pl
J'aimerais qu'il charge :
/Dev/Perl/Modules/*.pm
Par exemple j'ai:
/Dev/Perl/Modules/verif-ping.pm
qui contient par exemple:
sub verif-ping {
<mes commandes>
}
pouvoir appeler dans test-process.pl directement le sub via un simple
&verif-ping;
Merci d'avance pour votre aide
Un exemple :
__________ fichier main.pl _________
#!perl -w
use strict;
require 'fonctions.pl';
my $a = 3;
my $b = 5;
print mul($a, $b), "n";
__END__
__________ fichier fonctions.pl __________
#!perl -w
use strict;
sub mul {
my ($x, $y) = @_;
return $x * $y;
}
1; # retourne 'vrai' lors du require
__END__
Tout se passe comme si la fonction 'mul' était insérée dans le source
de 'main.pl'. Sauf que des variables déclarées dans 'main.pl' ne
seront pas accessibles dans 'fonctions.pl'... et réciproquement.
"Carole Rabon" wrote in message news:<41720398$0$29508$...
Bonjour
Je precise, je debute sous Perl ;=) merci par avance pour votre indulgence. Jusqu'ici, j'ai fais quelques script Perl que je fractionne en utilisant de simple sub ...
J'aimerais faire en sorte que mon programme charge au demarrage l'ensemble des "sub" que j'ai fais d'un repertoire afin de les utiliser dans l'appli mais ne sais pas comment faire.
Par exemple :
J'ai mon appli: /Dev/Perl/test-process.pl
J'aimerais qu'il charge : /Dev/Perl/Modules/*.pm
Par exemple j'ai: /Dev/Perl/Modules/verif-ping.pm
qui contient par exemple: sub verif-ping { <mes commandes> }
pouvoir appeler dans test-process.pl directement le sub via un simple &verif-ping;
Merci d'avance pour votre aide
Un exemple :
__________ fichier main.pl _________ #!perl -w use strict;
require 'fonctions.pl';
my $a = 3; my $b = 5;
print mul($a, $b), "n"; __END__
__________ fichier fonctions.pl __________ #!perl -w use strict;
sub mul { my ($x, $y) = @_; return $x * $y; }
1; # retourne 'vrai' lors du require __END__
Tout se passe comme si la fonction 'mul' était insérée dans le source de 'main.pl'. Sauf que des variables déclarées dans 'main.pl' ne seront pas accessibles dans 'fonctions.pl'... et réciproquement.
Jean-Pierre
Jérémy JUST
On 17 Oct 2004 13:41:40 -0700 (Jean-Pierre Vidal) wrote:
require 'fonctions.pl';
C'est un peu désuet d'appeler les modules « *.pl ». Depuis Perl 5, le suffixe pl est réservé aux programmes, et les modules sont des « *.pm ».
-- Jérémy JUST
On 17 Oct 2004 13:41:40 -0700
jeanpierre.vidal@free.fr (Jean-Pierre Vidal) wrote:
require 'fonctions.pl';
C'est un peu désuet d'appeler les modules « *.pl ».
Depuis Perl 5, le suffixe pl est réservé aux programmes, et les
modules sont des « *.pm ».
On 17 Oct 2004 13:41:40 -0700 (Jean-Pierre Vidal) wrote:
require 'fonctions.pl';
C'est un peu désuet d'appeler les modules « *.pl ». Depuis Perl 5, le suffixe pl est réservé aux programmes, et les modules sont des « *.pm ».
-- Jérémy JUST
Paul Gaborit
À (at) 18 Oct 2004 09:33:20 -0700, (Jean-Pierre Vidal) écrivait (wrote):
D'un autre côté en utilisant *.pm je m'affranchirais des quotes et un simple
require fonctions;
ou
use fonctions;
suffirait... avec, en prime, la portabilité de la syntaxe '::' si le module se trouve dans un autre répertoire :
require 'func/fonctions.pl'; vs require func::fonctions;
Il ne faut pas oublier les conventions implicites en Perl : les noms de modules entièrement en minuscules sont réservés pour l'usage "interne" de perl (on les appelle alors des pragmas comme par exemple 'strict', 'warnings' ou 'threads').
Donc, dans votre cas :
use Fonctions;
ou
use Func::Functions;
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
À (at) 18 Oct 2004 09:33:20 -0700,
jeanpierre.vidal@free.fr (Jean-Pierre Vidal) écrivait (wrote):
D'un autre côté en utilisant *.pm je m'affranchirais des quotes et un
simple
require fonctions;
ou
use fonctions;
suffirait... avec, en prime, la portabilité de la syntaxe '::' si le
module se trouve dans un autre répertoire :
require 'func/fonctions.pl'; vs require func::fonctions;
Il ne faut pas oublier les conventions implicites en Perl : les noms de
modules entièrement en minuscules sont réservés pour l'usage "interne" de perl
(on les appelle alors des pragmas comme par exemple 'strict', 'warnings' ou
'threads').
Donc, dans votre cas :
use Fonctions;
ou
use Func::Functions;
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
À (at) 18 Oct 2004 09:33:20 -0700, (Jean-Pierre Vidal) écrivait (wrote):
D'un autre côté en utilisant *.pm je m'affranchirais des quotes et un simple
require fonctions;
ou
use fonctions;
suffirait... avec, en prime, la portabilité de la syntaxe '::' si le module se trouve dans un autre répertoire :
require 'func/fonctions.pl'; vs require func::fonctions;
Il ne faut pas oublier les conventions implicites en Perl : les noms de modules entièrement en minuscules sont réservés pour l'usage "interne" de perl (on les appelle alors des pragmas comme par exemple 'strict', 'warnings' ou 'threads').
Donc, dans votre cas :
use Fonctions;
ou
use Func::Functions;
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>