Ik ben bezig met een perl server te maken, en nu wil ik dus gaan splitten op de \0 tekens die ik na elk bericht ontvang van de server. Nu is dit geen probleem totdat er een \n in het bericht staat.
Ik krijg dus bijvoorbeeld de volgende string terug van de client:
Dit zijn dus 2 en een half bericht. Vervolgens wil ik met een loopje de berichten splitten (1 voor 1) Hiervoor had ik de volgende code bedacht:
Nu verwacht ik de volgende output:
Nu krijg ik alleen door het \n teken in de 2e zin:
Mijn vraag: Hoe zorg ik ervoor dat het wel werkt en ik de verwachte output krijg? (zonder \n te replacen of uriencoden of iets anders)
Ik krijg dus bijvoorbeeld de volgende string terug van de client:
code:
1
| dit is een tekst\0en hier komt nog meer\n\0en hier een half ontvangen ber |
Dit zijn dus 2 en een half bericht. Vervolgens wil ik met een loopje de berichten splitten (1 voor 1) Hiervoor had ik de volgende code bedacht:
Perl:
1
2
3
4
5
6
7
| my $string = "dit is een tekst\0en hier komt nog meer\n\0en hier een half ontvangen ber"; while($string =~ m/^(.*?)\0/g) { print $1."\n"; } print "\n\nNot parsed: " . $string; |
Nu verwacht ik de volgende output:
code:
1
2
3
4
5
| dit is een tekst en hier komt nog meer Not parsed: en hier een half ontvangen ber |
Nu krijg ik alleen door het \n teken in de 2e zin:
code:
1
2
3
4
5
| dit is een tekst Not parsed: dit is een tekst en hier komt nog meer en hier een half ontvangen ber |
Mijn vraag: Hoe zorg ik ervoor dat het wel werkt en ik de verwachte output krijg? (zonder \n te replacen of uriencoden of iets anders)