#!/usr/bin/perl
open (PAT, $ARGV[0]);
while ($ligne=<PAT>){
	chomp $ligne;#on retire la fin de ligne
	 my $i=0;#initilaisation du compteur
	while ($ligne=~ m/ /g) {$i++}; # on compte le nombre de blancs//=pseudo segmentation// on aurait pu faire un split et recuperer le  dernièr indice du tableau
	$ligne=~s/ //g;
	# print "il y a $i blanc(s) \n";
	# print "$ligne\n";
	open (FIC,$ARGV[1]);
	while($rangee=<FIC>){
	

		 $rangee =~/(.+)\t(.+)\t(.+)/; #on utilise ensuite $1 $2 $3 pour stoker les variables
		 my $tok=$1;
		 my $pos=$3;
		 # je teste cet element pour m'assurer qu'il n'est pas une ponct faible pos= part of speech
		 if ($pos!~/PCTF/) #tant que pos est different de ponct forte ou faible
				{
				push (@listepos,$pos); #je crée une liste avec push et @
				push (@listetoken,$tok); #je crée ma liste de token
				}
		else {
				# print "@listepos\n";
				# print "appuie sur return pour continuer\n";
				# my $rep = <STDIN>;
				#print "@listetoken\n";
				#je vais segmenter la liste pour pouvoir trouver le nombre de correspondance
				# j'ai decidé de transformer mes listes obtenues en scalaire
				$liste_en_scalaire="";
				for ($j=0;$j<=$#listepos-$i;$j++)
				{
				#je crée une liste
				@temporaire=@listepos[$j..$j+$i]; #$j c'est le curseur $#=valeur de du dernier indice d'une liste
				# print @temporaire;
					# print "appuie sur return pour continuer\n";
						# my $reponse = <STDIN>;
				foreach $temporaire (@temporaire)
				{
				$liste_en_scalaire=$liste_en_scalaire.$temporaire;
				}
				#ou $liste_en_scalaire.=$temporaire
				if ($liste_en_scalaire=~/$ligne/)
					{
						# print $liste_en_scalaire;
					$k=$j+$i;
					$extraction=join(" ",@listetoken[$j..$k]);
					print $extraction,"\n";
					}					
					$liste_en_scalaire="";
					}
					@listepos=();
					@listetoken=();
				
				
				
		}
	}


close(FIC);
}
close(PAT);