Originariamente inviato da Mario Vegliante
Questo vuole che in una linea come questa,mi fermi ad analizzare parola per parola per parola per poi fermarmi al primo punto interrogativo e avere la possibilitá di modificare per poi continuare a leggere fino all´ultima parole della frase o all´ultimo punto interrogativo.


CMPDATA;<a:PROD>;<a:?Kartentyp (TEST|PROD):TEST?>;;
:master:
questo cambia le cose
se vuoi avere parola per parola
@parole=split(/\;/,$_); #dove $_ è la tua riga
#se i punti interrogativi possono essere ovunque
foreach $parola(@parole)
{
#condizione di controllo e modifica
}
#se i punti interrogativi sono solo al campo 2 cioè <a:?Kartentyp (TEST|PROD):TEST?>
#puoi separare ulteriormente (ci sono molti modi per farlo):
@punti_Int=split(/\?/,$parole[1]);
#a questi punto hai che $punti_Int[1]="Kartentyp (TEST|PROD):TEST" e ci fai quel che voi

non mi è chiaro però perchè è necessario fare tutto questo giro .... credo puro scopo didattico ....