in reply to Re: Using FLY to print to STDOUT
in thread Using FLY to print to STDOUT

I tried it using the open2 function, but for some reason the readhandle is empty. maybe i'm using it wrong, since the readhandle is empty perl hangs when i try to read from it.
#!D:\perl\bin\ use IPC::Open2; $flyprog = "d:\\perl\\fly\\fly.exe"; open2 (*BOY, *FLY, "$flyprog -q"); print FLY "new\n"; print FLY "size 256,256\n"; print FLY "fill 1,1,255,255,255\n"; print FLY "arc 128,128,180,180,0,360,0,0,0\n"; print FLY "fill 128,128,255,255,0\n"; print FLY "arc 128,128,120,120,0,180,0,0,0\n"; print FLY "arc 96,96,10,10,0,360,0,0,0\n"; print FLY "arc 160,96,10,10,0,360,0,0,0\n"; print FLY "fill 96,96,0,0,0\n"; print FLY "fill 160,96,0,0,0\n"; print FLY "string 0,0,0,10,240,giant,Hello, World!\n"; print FLY "string 0,0,0,100,10,medium,Don't worry, be Happy!\n"; close(FLY); $output = <BOY>; close(BOY); print "Content-type: image/gif\n\n"; binmode(STDOUT); print $output;
It SHOULD work, but it doesn't for some reason. I must be doing something wrong.

Replies are listed 'Best First'.
Re: Re: Re: Using FLY to print to STDOUT
by vek (Prior) on Oct 05, 2002 at 17:03 UTC
    Make sure you use warnings and strict. Make sure you check to see if the call to open2 failed.
    open2 (*BOY, *FLY, "$flyprog -q") || die "open2 $flyprog - $!\n';
    Does fly.exe stream the data back to you via STDOUT? If so you might want to loop over the STDOUT filehandle:
    while (<BOY>) { $output .= $_; } close (BOY);
    -- vek --