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

Utilisation pas catholique de require

1 réponse
Avatar
Stephane TOUGARD
Je cherche a charger plusieurs fois des modules qui contiennent le meme
nom de package et les meme noms de fonction

#!/usr/bin/perl
use strict;

require ("module3") or die $!;
&youp::hello;
print "\n";

require ("module1") or die $!;
&youp::hello;
print "\n";

require ("module2") or die $!;
&youp::hello;
print "\n";

La fonction hello qui est presente dans chaque module affiche le nom du
module et j'obtiens ca :

Module 3
Module 1
Module 2

Bref, ca a l'air bon. Jusqu'a ce que je reload 2 fois le meme module :

#!/usr/bin/perl
use strict;

require ("module3") or die $!;
&youp::hello;
print "\n";

require ("module1") or die $!;
&youp::hello;
print "\n";

require ("module2") or die $!;
&youp::hello;
print "\n";

require ("module3") or die $!;
&youp::hello;
print "\n";

require ("module1") or die $!;
&youp::hello;
print "\n";

require ("module2") or die $!;
&youp::hello;
print "\n";

Qui me donne

Module 3
Module 1
Module 2
Module 2
Module 2
Module 2

En soit, ce type de reaction ne me gene pas, je n'ai aucun interet a
download deux fois exactement le meme module. Mais disons que je cherche
a comprendre si le premier exemple est safe ou pas.

Merci de toute aide

1 réponse

Avatar
Patrice Karatchentzeff
Stephane TOUGARD a écrit :

Je cherche a charger plusieurs fois des modules qui contiennent le
meme nom de package et les meme noms de fonction



[...]

En soit, ce type de reaction ne me gene pas, je n'ai aucun interet a
download deux fois exactement le meme module. Mais disons que je
cherche a comprendre si le premier exemple est safe ou pas.



De mémoire, require ne charge pas une seconde fois le module donc tu
conserves l'espace du dernier module que tu as chargé « pour la
première fois ».

C'est cohérent avec ce que tu obtiens en tout cas..

Si tu veux forcer ce comportement, il faut passer par un eval je
pense... à confirmer.

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)