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

je comprends pas un truc...

3 réponses
Avatar
kurtz le pirate
bonsoir,

en utilisant use HTML::TagParser
(http://search.cpan.org/~kawasaki/HTML-TagParser-0.13/lib/HTML/TagParser.
pm), une méthode retourne un tableau suivant le type de tag :
my @imageList = $html->getElementsByTagName("img");

sur chaque élément de ce tableau on peut appliqué d'autres méthode dont
celle ci :
my $attr = $thisImage->attributes;

ce que je ne comprends pas c'est que plus loin dans l'exemple, le $attr
est utiliser comme un hash :
foreach my $key (sort keys %$attr) {...}

enfin... ce n'est peut être pas un hash justement (mais ça y ressemble).
c'est là que je ne comprends plus :((


pas encore capté les objets/méthode/heritage & co...


merci


--
klp

3 réponses

Avatar
Paul Gaborit
À (at) Tue, 27 Jun 2006 20:09:05 +0200,
kurtz le pirate écrivait (wrote):
en utilisant use HTML::TagParser
[...]

sur chaque élément de ce tableau on peut appliqué d'autres méthode dont
celle ci :
my $attr = $thisImage->attributes;

ce que je ne comprends pas c'est que plus loin dans l'exemple, le $attr
est utiliser comme un hash :
foreach my $key (sort keys %$attr) {...}

enfin... ce n'est peut être pas un hash justement (mais ça y ressemble).


La méthode 'attributes' retourne une référence (un scalaire) à une
table de hachage. Chaque paire clé/valeur de cette table de hachage
est un attribut et sa valeur de l'élément HTML.

La notation '%$attr' permet de déférencer '$attr' pour l'utiliser
comme une table de hachage.

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

Avatar
kurtz le pirate
In article ,
Paul Gaborit wrote:

À (at) Tue, 27 Jun 2006 20:09:05 +0200,
kurtz le pirate écrivait (wrote):
en utilisant use HTML::TagParser
[...]

sur chaque élément de ce tableau on peut appliqué d'autres méthode dont
celle ci :
my $attr = $thisImage->attributes;

ce que je ne comprends pas c'est que plus loin dans l'exemple, le $attr
est utiliser comme un hash :
foreach my $key (sort keys %$attr) {...}

enfin... ce n'est peut être pas un hash justement (mais ça y ressemble).


La méthode 'attributes' retourne une référence (un scalaire) à une
table de hachage. Chaque paire clé/valeur de cette table de hachage
est un attribut et sa valeur de l'élément HTML.

La notation '%$attr' permet de déférencer '$attr' pour l'utiliser
comme une table de hachage.



merci paul pour ta réponse.

ça me rappelle le "casting" sous pascal... bref mais alors, pourquoi ne
pas faire directement :

my %attr = $thisImage->attributes;


oui, j'abuse, désolé :))

--
klp


Avatar
Paul Gaborit
À (at) Wed, 28 Jun 2006 19:51:46 +0200,
kurtz le pirate écrivait (wrote):
ça me rappelle le "casting" sous pascal...


Je ne vois pas le rapport... mias c'est peut-être la fatigue ;-)

bref mais alors, pourquoi ne
pas faire directement :

my %attr = $thisImage->attributes;


Cela supposerait que la méthode 'attributes' retourne une liste de
paires clé/valeur qui serait ensuite *recopiée* dans %attr.

Le passage par référence permet donc d'éviter une recopie.

Et là, c'est comme en Pascal ! ;-)

oui, j'abuse, désolé :))


Y'a pas de quoi.

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