Hello

J'ai un texte de ce genre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
{SndEventE:(MATHIEU)
     SetName("DEL_Play_Og_Beo_Eff_Medium")
     SetMachin("TRUE")     
     SetParam1(201_Beowulf_Efforts.csb^SndResourceE:9)
     SetVersion(18)     
}
 
{SndEventE:(MATHI)     
          SetFileName("100_Fight_Mec_Sh_Ti_Bl_St.wav")
          SetLoop(aaaaaaaaaaaaaaa)
          SetSpeakerBus("DARE_SPEAKER_INVALID")
          {ResLanguageM:("NOT_LOC")
               SetVolume_dB(0.000000000000)
               SetZeroLatencyStreaming(mmmmmmmmmm)
               SetSampleFrequency(48000)
               SetSampleChannelNumber(2)
          }
}
 
{SndEventE:(MATHIEU)
     SetName("DEL_Play_Og_Beo_Eff_Medium")
     SetMachin("TRUE")     
     SetParam1(201_Beowulf_Efforts.csb^SndResourceE:9)
     SetReverb("TRUE")
     SetBalance("TRUE")     
     SetTruc("TRUE")
     SetVersion(18)     
}
Je souhaiterais remplacer le bloc du milieu par une chaine $temp.
J'utilise l'expression suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$temp2 =~ s/$_blockTitle.*?\}/$temp/s;
$_blockTitle etant la premiere ligne du bloc. Tout se passe bien sauf qu'il s'arrete à la premiere accolade (of course) et je ne sais pas quoi mettre comme expression pour lui dire de remplacer tout jusqu'à la derniere accolade fermante du bloc.
Ce n'est qu'un exemple bien sur, je ne peux pas connaitre à l'avance le nombre d'accolade à la fin du bloc.

Merci d'avance
Mat'