Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Demande d'avis sur l'utilisation de REQUIRE

5 réponses
Avatar
Thierry
(Désolé pour le premier poste sans objet !)





Bonsoir,



j'ai un script perl que je trouve un peu long (env. 1700 lignes). Il est
composé d'une première partie principale exécutée à chaque appel et de
plusieurs parties secondaires dont une seule est exécutée suivant le
résultat de la première partie.



Afin d'éclaircir la chose, je pensais laisser la première partie dans le
script principal et mettre les différentes parties secondaires dans des
fichiers individuels (un fichier par partie). Un de ces fichiers secondaires
serait alors exécuté par un REQUIRE placé dans le script principal.



J'ai fais quelques essais, apparemment tous ce passe bien, mais j'aimerais
avoir vos avis sur cette solution, surtout au niveau sécurité.

5 réponses

Avatar
Paul Gaborit
À (at) Sat, 31 May 2008 23:57:43 +0200,
"Thierry" écrivait (wrote):
j'ai un script perl que je trouve un peu long (env. 1700 lignes). Il est
composé d'une première partie principale exécutée à chaque appel et de
plusieurs parties secondaires dont une seule est exécutée suivant le
résultat de la première partie.


Ce n'est pas vraiment un problème. À partir de quand un fichier source
est-il vraiment trop long ?


Afin d'éclaircir la chose, je pensais laisser la première partie dans le
script principal et mettre les différentes parties secondaires dans des
fichiers individuels (un fichier par partie). Un de ces fichiers secondaires
serait alors exécuté par un REQUIRE placé dans le script principal.


Si vous découpez correctement votre code, vous allez créer des
modules.

Après, pourquoi s'embêter avec 'require' ? Vous pouvez très bien faire
des 'use' dès le départ, ce qui est plus simple à gérer. Votre script
n'est certainement pas à quelques lignes près pour son temps de
compilation...

J'ai fais quelques essais, apparemment tous ce passe bien, mais j'aimerais
avoir vos avis sur cette solution, surtout au niveau sécurité.


Quel problème de sécurité imaginez-vous ?

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/&gt;
Perl en français - <http://perl.enstimac.fr/&gt;

Avatar
Thierry
"Paul Gaborit" a écrit dans le message de
news:

À (at) Sat, 31 May 2008 23:57:43 +0200,
"Thierry" écrivait (wrote):
j'ai un script perl que je trouve un peu long (env. 1700 lignes). Il
est
composé d'une première partie principale exécutée à chaque appel et de
plusieurs parties secondaires dont une seule est exécutée suivant le
résultat de la première partie.


Ce n'est pas vraiment un problème. À partir de quand un fichier source
est-il vraiment trop long ?


c'est vrai qu'il n'y a pas vraiement de longueur maxi "officielle".
Peut-être l'habitude à des scripts plus court ?



Afin d'éclaircir la chose, je pensais laisser la première partie dans le
script principal et mettre les différentes parties secondaires dans des
fichiers individuels (un fichier par partie). Un de ces fichiers
secondaires
serait alors exécuté par un REQUIRE placé dans le script principal.


Si vous découpez correctement votre code, vous allez créer des
modules.

Après, pourquoi s'embêter avec 'require' ? Vous pouvez très bien faire
des 'use' dès le départ, ce qui est plus simple à gérer. Votre script
n'est certainement pas à quelques lignes près pour son temps de
compilation...


j'ai jamais eu l'occasion de créer des modules, mais je peux effectivement
voire de ce côté également.


J'ai fais quelques essais, apparemment tous ce passe bien, mais
j'aimerais
avoir vos avis sur cette solution, surtout au niveau sécurité.


Quel problème de sécurité imaginez-vous ?


Je sais pas.
En fait, il s'agit d'un CGI, et comme pour tous ce qui est "exposé au
public" j'ai toujours tendance à me méfier.


--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/&gt;
Perl en français - <http://perl.enstimac.fr/&gt;



Avatar
espie
In article ,
Paul Gaborit <Paul.Gaborit+ wrote:

À (at) Sat, 31 May 2008 23:57:43 +0200,
"Thierry" écrivait (wrote):
j'ai un script perl que je trouve un peu long (env. 1700 lignes). Il est
composé d'une première partie principale exécutée à chaque appel et de
plusieurs parties secondaires dont une seule est exécutée suivant le
résultat de la première partie.


Ce n'est pas vraiment un problème. À partir de quand un fichier source
est-il vraiment trop long ?


Lorsqu'on commence vraiment a remarquer le temps que passe perl a parser
le fichier source en question ?


Avatar
Paul Gaborit
À (at) Thu, 5 Jun 2008 22:28:06 +0200,
"Thierry" écrivait (wrote):
c'est vrai qu'il n'y a pas vraiement de longueur maxi "officielle".
Peut-être l'habitude à des scripts plus court ?


Si c'est pour le confort d'édition ou pour la modularisation, ce sont
des bonnes raisons. Et effectivement, c'est en parti subjectif. ;-)

Je craignais que ce fut pour des pseudo raisons de performances...

j'ai jamais eu l'occasion de créer des modules, mais je peux effectivement
voire de ce côté également.



C'est tout ce qu'il y a de plus simple. Un module, c'est :

####### fichier MonModule.pm #######
package MonModule;

sub ma_fonction {
# ...
}

1; # pour retourner une valeur vraie en fin de compilation
####################################


Et pour l'utiliser dans votre script :

######## script principal ##########
use MonModule;

MonModule::ma_fonction();
####################################

Quel problème de sécurité imaginez-vous ?


Je sais pas. En fait, il s'agit d'un CGI, et comme pour tous ce qui
est "exposé au public" j'ai toujours tendance à me méfier.


Et vous avez raison : un script CGI ne doit pas s'écrire n'importe
comment. Donc votre script est dans un répertoire accessible par le
serveur. Par contre, vos modules n'ont aucun raison de l'être.

Pour que votre script sache où aller chercher ses modules, il suffit
(avant les appels à 'use') de lui indiquer le bon chemin via :

use lib '/le/chemin/du/repertoire/des/modules';

Pour en savoir plus, vous pouvez lire :

perldoc perlmod
perldoc perlmodstyle
perldoc lib
perldoc Exporter

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/&gt;
Perl en français - <http://perl.enstimac.fr/&gt;


Avatar
Paul Gaborit
À (at) Thu, 5 Jun 2008 21:25:18 +0000 (UTC),
(Marc Espie) écrivait (wrote):
In article ,
Paul Gaborit <Paul.Gaborit+ wrote:

Ce n'est pas vraiment un problème. À partir de quand un fichier source
est-il vraiment trop long ?


Lorsqu'on commence vraiment a remarquer le temps que passe perl a parser
le fichier source en question ?


:-;

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/&gt;
Perl en français - <http://perl.enstimac.fr/&gt;