RE: [RMX:#] Re: How to add to Associative Array
am 10.07.2007 13:49:18 von francois.bourgneufYou'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