Ok, I got the example to work on my Windows NT box, using Activestate and the same ppm-built version of GD that you have. The end of my example differs from the documented version. The important part is the last five lines where I open a filehandle and change the binmode on the open filehandle. If you don't do that it won't work. Give this code a try and see if it works for you.
#!/usr/bin/perl -w
use GD;
use strict;
my $im = new GD::Image(100,100);
# allocate some colors
my $white = $im->colorAllocate(255,255,255);
my $black = $im->colorAllocate(0,0,0);
my $red = $im->colorAllocate(255,0,0);
my $blue = $im->colorAllocate(0,0,255);
# make the background transparent and interlaced
$im->transparent($white);
$im->interlaced('true');
# Put a black frame around the picture
$im->rectangle(0,0,99,99,$black);
# Draw a blue oval
$im->arc(50,50,95,75,0,360,$blue);
# And fill it with red
$im->fill(50,50,$red);
my $png_data = $im->png;
open (DISPLAY,">myfile.png") || die;
binmode DISPLAY;
print DISPLAY $png_data;
close DISPLAY;
|