Hallo,
ich möchte gerade aus einem BlockingCall ca. 10.000 Zeichen (quasi ein Objekt) zurück geben. Leider dürfte der BlockingCall auf 4096 Zeichen limitiert sein. Kann man die Blocking.pm Funktion nicht dahingehend erweitern, dass er weitere Zeichen einliest bis das Ende erreicht ist? Einen Hinweis zu einem Limit konnte ich nämlich auch nicht finden.
Gruß
wenn ich mich recht erinnere, verarbeitet mein GDS Modul durchaus größere Datenmengen als 4096 Zeichen nonblocking.
Wenn es nicht klappt, kannst du die Daten per Datei zurück geben, und als Parameter den Dateinamen, zufällig generiert.
Ich hab den Fehler identifiziert. Scheinbar dürfte BlockingCall mit \n Probleme haben. Eventuell auch mehrere \n hintereinander?
Hab es nicht im Detail weiter getestet, aber ein
$return =~ s{\n}{}g;
behebt das Problem vollkommen. Damit kann ich nun mehrere 1000 Zeichen übergeben.
für die rückgabe wird telnet verwendet und deshalb muss die komplette rückgabe in einer zeile ohne newline erfolgen.
gruss
andre
Ich sehe gerade, dass sogar im Wiki steht:
"Wenn man mehrere separate Werte zurückgeben möchte, kann man diese entweder mit einem Trennzeichen (z.B. Pipe) versehen, oder bei einem Text mit Zeilenumbrüchen alles mit Base64 oder Hex encoden."
Hatte ich leider trotz mehrfachen Lesens immer übersehen..sorry.