RE: [RMX:#] Re: How to add to Associative Array

RE: [RMX:#] Re: How to add to Associative Array

am 10.07.2007 13:49:18 von francois.bourgneuf

You're not picky, you're right !

I had noticed the program created ash occurrences that pointes to nothing.
But the information that a key exists - though it points to nothing - is di=
fferent from the absence of a key.

Bour9

> -----Message d'origine-----
> De : activeperl-bounces@listserv.ActiveState.com =

> [mailto:activeperl-bounces@listserv.ActiveState.com] De la =

> part de Brian Raven
> Envoy=E9 : mardi 10 juillet 2007 12:41
> =C0 : activeperl@listserv.ActiveState.com
> Objet : RE: [RMX:#] Re: How to add to Associative Array
> =

> Mostly being picky, but ...
> =

> Bourgneuf Francois <> wrote:
> > Your program works fine, you made a mistake in the final print.
> > =

> > Here is a more "perlish" version
> > =

> > $file =3D 'c:/temp/export/CONVERSION/test.txt'; # You can use =

> / instead
> > of \, it works fine even under Windows =

> > open TEST, "$file" || die "Cant open file $file";
> =

> It would be better if you added the reason for failure, i.e. $!.
> =

> > while() {
> > chomp;
> =

> You don't need two chomps and this one seems the most redundant.
> =

> > if (/PLMEJob Master/../^$/)
> =

> That should be 'if (/PLMEJob Master/../^\s*$/' in case the =

> line contains
> white space characters (it will contain at least one if you remove the
> above chomp).
> =

> > {
> > chomp;
> > next if /PLMEJob Master/ || /^$/;
> > my @a =3D split /=3D/;
> =

> I would make the above two lines:
> my @a =3D split /=3D/, $_, 2;
> next unless @a > 1;
> =

> It makes sure that @a contains no more than 2 entries, and it's a
> simpler test for the line(s) to skip.
> =

> > $info{$a[0]} =3D $a[1];
> > }
> > }
> > close(TEST);
> > print "$_ =3D> $info{$_}\n" foreach sort keys %info;
> =

> Or perhaps Data::Dumper.
> =

> > =

> > =

> > Big mistake :
> > foreach(%info)
> > {
> > print "$_ =3D> $info{$_}\n"
> > }
> > =

> > An associative array is an array indeed !
> > So when you print foreach %info, you print each key and each value.
> > Of course it wont find any value for $info{value} =

> =

> Yup.
> =

> HTH
> =

> -- =

> Brian Raven =

> =

> ==================== =====
=================3D
> Atos Euronext Market Solutions Disclaimer
> ==================== =====
=================3D
> =

> The information contained in this e-mail is confidential and =

> solely for the intended addressee(s). Unauthorised =

> reproduction, disclosure, modification, and/or distribution =

> of this email may be unlawful.
> If you have received this email in error, please notify the =

> sender immediately and delete it from your system. The views =

> expressed in this message do not necessarily reflect those of =

> Atos Euronext Market Solutions.
> =

> Atos Euronext Market Solutions Limited - Registered in =

> England & Wales with registration no. 3962327. Registered =

> office address at 25 Bank Street London E14 5NQ United Kingdom. =

> Atos Euronext Market Solutions SAS - Registered in France =

> with registration no. 425 100 294. Registered office address =

> at 6/8 Boulevard Haussmann 75009 Paris France.
> =

> L'information contenue dans cet e-mail est confidentielle et =

> uniquement destinee a la (aux) personnes a laquelle =

> (auxquelle(s)) elle est adressee. Toute copie, publication ou =

> diffusion de cet email est interdite. Si cet e-mail vous =

> parvient par erreur, nous vous prions de bien vouloir =

> prevenir l'expediteur immediatement et d'effacer le e-mail et =

> annexes jointes de votre systeme. Le contenu de ce message =

> electronique ne represente pas necessairement la position ou =

> le point de vue d'Atos Euronext Market Solutions.
> Atos Euronext Market Solutions Limited Soci=E9t=E9 de droit =

> anglais, enregistr=E9e au Royaume Uni sous le num=E9ro 3962327, =

> dont le si=E8ge social se situe 25 Bank Street E14 5NQ Londres =

> Royaume Uni.
> =

> Atos Euronext Market Solutions SAS, soci=E9t=E9 par actions =

> simplifi=E9e, enregistr=E9 au registre dui commerce et des =

> soci=E9t=E9s sous le num=E9ro 425 100 294 RCS Paris et dont le =

> si=E8ge social se situe 6/8 Boulevard Haussmann 75009 Paris France.
> ==================== =====
=================3D
> =

> _______________________________________________
> ActivePerl mailing list
> ActivePerl@listserv.ActiveState.com
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
> =

> =

_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs