|
|
|
|
Bonjour,
j'aurais besoin d'un peu d'aide ne Perl. Je fais du Perl 2 fois par ans, et je galère pas mal avec la manipulation de tableaux (je ne suis pas informaticien ni développeur, mais médecin).
Je pars de deux tableaux :
@Vrac = Lundi Novembre Mardi Mercredi
@Semaine = Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimnanche
Je souhaiterais lire chaque valeur de mon tableau @Vrac, et vérifier la présence de la valeur en cours de lecture dans le tableau @Semaine.
Je voudrias alors nettoyer mon tableaun @Vrac de svaleurs non conformes (c'est à dire absentes du tableau) et mettre ces valeurs hors norme dans un tableau @anomalie.
Au final je souhaiterais avoir les tableaux suivants :
@Vrac = Lundi Mardi Mercredi
@anomalie = Novembre
Quelqu'un pourrait m'aider ?
Merci.
Alain.
Salut,
root@debian:~# cat ccm.pl
#!/usr/bin/perl
use strict;use warnings;
my @vrac = qw/Lundi Novembre Mardi Mercredi/;
my @semaine = qw/Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche/;
my %vu_dans_semaine;
my @pas_dans_vrac;
my(@normal,@anomalie);
@vu_dans_semaine{@semaine} = ();
for (@vrac){ push @anomalie,$_ unless exists $vu_dans_semaine{$_};
push @normal,$_ if exists $vu_dans_semaine{$_} }
print "\@normal = @normal\n\@anomalie = @anomalie\n";
__END__
root@debian:~# perl ccm.pl
@normal = Lundi Mardi Mercredi
@anomalie = Novembre
root@debian:~#--
lami20j |
Ou plus court avec l'opérateur ternaire ?:
#!/usr/bin/perl
use strict;use warnings;
my @vrac = qw/Lundi Novembre Mardi Mercredi/;
my @semaine = qw/Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche/;
my %vu_dans_semaine;
my @pas_dans_vrac;
my(@normal,@anomalie);
@vu_dans_semaine{@semaine} = ();
for(@vrac){exists $vu_dans_semaine{$_}?push @normal,$_:push @anomalie,$_}
print "\@normal = @normal\n\@anomalie = @anomalie\n";
__END__
lami20j |
Salut,
|