Hi Jon, > (client "www.some.com" 80 "page.html"
> Depending on the chunks I read, I want to write some lines to a > certain file on my disk, say "diskfile.txt", and now and then I also > want to write a little info to my console with (out NIL (prinl > SomeInfo)). Good. > Are there better/smarter ways to do this than to use (out > "+diskfile.txt" . . .) each time new lines shall be written to the > file? I think that writing with (out "+..." ...) is perfectly all right. This is quite efficient, because the file is opened in append mode so that the file pointer is immediately at its end. If you feel that re-opening the file each time is too expensive, you could also open all output channels in the beginning, and close them later, e.g. (client "www.some.com" 80 "page.html" (out NIL # Default to stdout (let (A (open "file1") B (open "file2")) ... (prinl "toStdout") ... (out A (prinl "to file1")) ... (out B (prinl "to file2")) ... (close A) (close B) ) ) ) If there is a possibility that the body of client is aborted before the ending 'close's are reached (e.g. a 'throw' or and error exit), then better use 'finally': (client "www.some.com" 80 "page.html" (out NIL (let? A (open "file1") (finally (close A) (let? B (open "file2") (finally (close B) ... (prinl "toStdout") ... (out A (prinl "to file1")) ... (out B (prinl "to file2")) ) ) ) ) ) ) You could 'bench'mark both versions, but I think there'll be no significant difference. ♪♫ Alex -- UNSUBSCRIBE: mailto:firstname.lastname@example.org?subject=Unsubscribe