1 occurrence de mot en PERL

Résolu/Fermé
eccomi Messages postés 13 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 5 janvier 2009 - 9 déc. 2007 à 15:38
eccomi Messages postés 13 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 5 janvier 2009 - 9 déc. 2007 à 16:16
Bonjour à tous,


J'ai fait un petit script perl pour afficher les mots d'un fichier sans doublons, c'est-à-dire pour avoir n'afficher les différents mots du fichier qu'une seule fois. Cependant lorsque j'imprime ma liste, cela me renvoie tous les mots avec les doublons...
Quelqu'un saurait m'aider?
Merci.


#!/usr/bin/perl

use strict;

my @tab;

open (F, "<texte.txt");
while (<F>)
{

chomp;

push @tab,$_;

}



my @tab2;

foreach my $mot (@tab) {

my $uniq = 1;

foreach my $terme (@tab2) {

if ($mot eq $terme)

{ $uniq=0 ; }

}

if ($uniq == 1) { push (@tab2, $mot); }


}


print join "\n", @tab2;


close (F);




Et voici le texte :

A lavà la testa agl'asenece ce se remètte fatìa i sapòne

(del tutto inutile lavare la testa di un asino)

Dù toucche e campana ‘ntire e’carrozza quatte mattùne

(il funerale di un povero in canna)

‘Nte murì, se nò ‘na chiagnuta e na magnata de maccarùne e tutte è fenite

(si apostrofavano così per burla le persone molto anziane)

La uita è ‘n’affacciata e finestra

(considerazione di una centenaria)

Quanne la botta se chembronta che glie cellitte

(letteralmente: quando il colpo - di fucile - colpisce l’uccello, vale a dire un’ottima coincidenza)

Chi va che gli ciuoppe ‘mpara a ceppecà

(chi va con lo zoppo impara a zoppicare)

O’ spazzacamine = lo spazzacamino

O’ ciuciaro = il robivecchi

O’ falegname = il falegname

O’ sampegnare = lo zampognaro

Glie sarture = il sarto

Glie scetagnare = lo stagnaro

Glie ferrare = il fabbro

Glie cannicciare = il lavoratore di canne per cesti, sedie, etc.

Glie arrotine = l’arrotino



Glie iasene = l’asino

Glie joughe= il giogo, il collare dei buoi

Glie fecurale = il focolare

Glie chetture de rame = il paiolo di rame

Glie bacile = il bacile

Glie fuosse = il fosso

Glie macere = i muricciuoli

scartafeglià o scart’ccià = spogliare le pannocchie

O’ sericche = il bastone di legno appuntito

La tijana = il tegame

La pegniata = la brocca in terracotta

Concludiamo questa scorribanda dialettale con alcuni proverbi e parole caratteristici della zona di Arce e di Colfelice. Laddove la traduzione è semplice, non abbiamo ritemuto opportuno inserirla.

Gliu porche è bone n’anne, gl’amice sò bone sempre

Criste ‘ncele gli adòcchia i ‘nterra gli accòcchia

Ittà la prèta e nasconne la mane

Chi leste vò murì, agliu mese de marze s’edda scuprì

Te sì abbramate = sei diventato avido

Chi arrète me parla arrète gli tenghe (non considero chi mi parla alle spalle)

Quanne a riglie e quanne a cappone (letterale: quando a grillo e quando a cappone, cioè a volte va male e a volte va bene)

Chelle che nen ze fa, nen ze sa (la verità viene sempre fuori)

Comme iamme? Nè ‘nterra nè ‘ncima (Come stai? Così così)

Va a retoglie gliu mile ‘ncanna agliu porche (Quello che è fatto è fatto)

Nen te mette ‘ncòmmede (non ti disturbare)
A voir également:

2 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 569
9 déc. 2007 à 16:07
Salut,
#!/usr/bin/perl
use strict;use warnings;
open LIRE,"texte.txt"
    or die "E/S : $!\n";

my (@texte,%h);
while(<LIRE>){
        push @texte,$_ =~ /([^-:\s=(),'?.]+)/g;
}

my @mot_unique = grep { ! $h{$_}++ } @texte;
print "$_\n" foreach sort @mot_unique;
__END__

1
eccomi Messages postés 13 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 5 janvier 2009
9 déc. 2007 à 16:16
C'est...magnifique.

Merci beaucoup. J'ai testé, mais j'ai pas encore tout décrypté!
0