Bonjour a tous. Dans le contexte d'un proxy à usage personnel, j'ai besoin d'inclure un morceau de code dans mon programme principal. Ce morceau étant défini par une variable.
j'ai essayé avec ces deux méthodes
Dans les deux cas, le code à l'intérieur est éxécuté. Jusque la, tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 do $mavar.'pm'; require $mavar.'pm';
J'utilise HTML::TreeBuilder pour parser mon HTML, et selon ou je fais le parsage, ca empeche toutes les images de se charger.
Ma premiere méthode, qui fonctionne :
avec le module
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $info{content}=$response->content; do module.pm #modify the tree return \$info{content};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 use strict; use warnings; use HTML::TreeBuilder; # Ensure weak references in use my $tree = HTML::TreeBuilder->new_from_content($awproxy::process::info{content}) or die $!; my $elem = $tree->look_down(_tag => "img"); $elem->attr('width', '240'); $elem->attr('height', '60'); $awproxy::process::info{content} = $tree->as_HTML(undef,"\t"); $tree->delete(); 1;
Et maintenant, la version qui pourrit toutes les images :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $info{content}=$response->content; $info{tree} = HTML::TreeBuilder->new_from_content($info{content}) or die $!; do module.pm #modify the tree $info{content} = $info{tree}->as_HTML(undef,"\t"); $info{tree}->delete(); return \$info{content};Aucune des images n'est chargée dans la 2e méthode.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 my $elem = $awproxy::process::info{tree}->look_down(_tag => "img"); $elem->attr('width', '240'); $elem->attr('height', '60');
Ma principale interrogation est donc de comprendre pourquoi, alors que je pense faire la meme chose.
2e chose : est ce que c'est la bonne méthode pour executer un morceau de code dans un autre fichier, tout en partageant des variables?
Partager