CocoaDev

Edit AllPages

Hey,

My application generates a temporary perl script and needs to run it from the command line. Using NSTask is giving me incredible headaches - how would one go about running a perl script and returning the result that is located at, say, ~/myperlscript.pl? - THANKS.

This should catch anything that is spit out to STDOUT by the perl script:

NSTask *t = [[NSTask alloc] init]; NSPipe *p = [[NSPipe alloc] init]; NSFileHandle *h = [p fileHandleForReading]; NSString *path = [@”~/myperlscript.pl” stringByStandardizingPath];

[t setLaunchPath:@”/usr/bin/perl”]; [t setArguments:[NSArray arrayWithObjects:path, nil]]; [t setStandardOutput:p]; [t launch];

NSData *d = [h readDataToEndOfFile];

[t release]; [p release]; [h release];

NSString *stdout_contents = [[[NSString alloc] initWithData:d encoding:NSUTF8StringEncoding] autorelease];