J'ai encore un probleme avec grep j'ai un tableau @site dont je souhaite éliminer les valeurs déjà traité
j'ai tente l'approche suivante
mais sa domme rien :cry:Code:@site = grep( { defined $urls{$_} } @site);
Version imprimable
J'ai encore un probleme avec grep j'ai un tableau @site dont je souhaite éliminer les valeurs déjà traité
j'ai tente l'approche suivante
mais sa domme rien :cry:Code:@site = grep( { defined $urls{$_} } @site);
C'est pourtant une approche correcte ... à condition que %url soit préalablement rempli :Citation:
Envoyé par cryptorchild
Affiche bien a,c,e comme on peut s'y attendre ...Code:
1
2
3
4
5
6
7 my @l=qw (a b c e h); my %h=qw (a 1 c 1 e 1); @nl=grep ( { defined ($h{$_}) } @l ); $,=","; print @nl;'
Maintenant, toi tu semble souhaiter éliminer ce qui est déjà dans le hash. Il faut donc inverser ta condition :Affiche alors b,h.Code:
1
2
3
4
5
6
7 my @l=qw (a b c e h); my %h=qw (a 1 c 1 e 1); @nl=grep ( { not defined ($h{$_}) } @l ); $,=","; print @nl;'
Il te faut donc faire :Code:@site = grep( { not defined $urls{$_} } @site);
En fait je cherche comment remplacépar l'équivalant mais avec un tableauCode:next if defined $vus{$url};
Dans les fait je veut utiliser cette fonction
et faire un map ou un grep pour supprimer tout les élément ayant $_ == 1Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 sub exist { my $url = shift; my $find; my $sth = $dbh->prepare(' SELECT count(site_url) FROM sites WHERE site_url="$url" '); $sth->execute; $sth->bind_columns(\$find); $sth->fetch(); $sth->finish(); #0 = introuvable, 1 = trouvé return $find }
Me revoila pour cabler le grep() avec la fonction sql j'ai fait cela
etCode:@site = grep( {$_ = exist($_); ($_ == 0) } @site);
et sa ne marche pas :evil:Code:@site = grep( { ($_ = exist($_)) not ($_ == 0) } @site);
Je galère vraiment la help please !!!!!
Si j'ai bien compris la question, un :devrait suffire.Code:@site = grep( { (exist($_) == 0) } @site);
Merci 2Eurocents :wink: .