Manipulation de tableaux en perl
Fermé
Alain T
-
24 oct. 2007 à 15:14
christophe1371 Messages postés 65 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 12 décembre 2012 - 24 oct. 2007 à 15:59
christophe1371 Messages postés 65 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 12 décembre 2012 - 24 oct. 2007 à 15:59
A voir également:
- Manipulation de tableaux en perl
- Tableaux croisés dynamiques - Guide
- Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant ✓ - Forum Excel
- Afficher un tableau en c - Forum C
- Fusionner deux tableaux excel - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
3 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
24 oct. 2007 à 15:46
24 oct. 2007 à 15:46
Salut,
lami20j
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
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
24 oct. 2007 à 15:51
24 oct. 2007 à 15:51
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__
christophe1371
Messages postés
65
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
12 décembre 2012
10
24 oct. 2007 à 15:59
24 oct. 2007 à 15:59
salut,
on utilise un tableau de hachage intermediaire (temp) pour pouvoir utiliser la fonction exists tres pratique pour vérifier si une clé existe
my @anomalie;
my @Vrac =(Lundi,Novembre,Mardi,Mercredi);
my @Semaine =(Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimnanche);
my %temp;
@temp{@Semaine} = 0..$#Semaine;
for my $val (@Vrac) {
if( ! exists $temp{$val} ) {
push (@anomalie,$val);
}
on utilise un tableau de hachage intermediaire (temp) pour pouvoir utiliser la fonction exists tres pratique pour vérifier si une clé existe
my @anomalie;
my @Vrac =(Lundi,Novembre,Mardi,Mercredi);
my @Semaine =(Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimnanche);
my %temp;
@temp{@Semaine} = 0..$#Semaine;
for my $val (@Vrac) {
if( ! exists $temp{$val} ) {
push (@anomalie,$val);
}