The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use PDF::API2;
use PDF::API2::Util;
use POSIX;
use Math::Trig;

my $cx=50;
my $cy=50;
my $cr=15;
my $cs=30;
my $ang=30;

$pdf=PDF::API2->new;
$pdf->mediabox(595,842);

$fnt=$pdf->corefont('Verdana-Bold');

    $page = $pdf->page;
    $gfx=$page->gfx;
    
    $gfx->textlabel(300,750,$fnt,20,'Separation Colorspace(s)',-color=>'#000',-hspace=>125,-center=>1);

    $gfx->strokecolor('#000');
    my $y=0;
    foreach my $csn (qw( Red %0ff0 Green %f0f0 Blue %ff00 Cyan %f000 Magenta %0f00 Yellow %00f0 )) {
        my $csp=$pdf->colorspace_separation($csn,$csn);
        $gfx->textlabel($cx,$cy+($y*$cs),$fnt,8,$csn,-color=>'#000',-hspace=>85,-right=>1);
        foreach my $x (0 .. 0xf) {
            $gfx->fillcolor($csp,sprintf('%0.4f',$x/0xf));
            $gfx->circle($cx+($x+1)*$cs,$cy+($y+0.5)*$cs,$cr);
            $gfx->fillstroke;
            $gfx->textlabel($cx+($x+1)*$cs,$cy+($y+0.5)*$cs,$fnt,8,sprintf('%0.4f',$x/0xf),-color=>'#000',-hspace=>85,-center=>1);
        }
        $y++;
    }


    my $csp=$pdf->colorspace_separation('All','#000');
    $gfx->textlabel($cx,$cy+($y*$cs),$fnt,8,'All',-color=>'#000',-hspace=>85,-right=>1);
    foreach my $x (0 .. 0xf) {
        $gfx->fillcolor($csp,sprintf('%0.4f',$x/0xf));
        $gfx->circle($cx+($x+1)*$cs,$cy+($y+0.5)*$cs,$cr);
        $gfx->fillstroke;
        $gfx->textlabel($cx+($x+1)*$cs,$cy+($y+0.5)*$cs,$fnt,8,sprintf('%0.4f',$x/0xf),-color=>'#000',-hspace=>85,-center=>1);
    }
    $y++;

    $csp=$pdf->colorspace_separation('None','#000');
    $gfx->textlabel($cx,$cy+($y*$cs),$fnt,8,'None',-color=>'#000',-hspace=>85,-right=>1);
    foreach my $x (0 .. 0xf) {
        $gfx->fillcolor($csp,sprintf('%0.4f',$x/0xf));
        $gfx->circle($cx+($x+1)*$cs,$cy+($y+0.5)*$cs,$cr);
        $gfx->fillstroke;
        $gfx->textlabel($cx+($x+1)*$cs,$cy+($y+0.5)*$cs,$fnt,8,sprintf('%0.4f',$x/0xf),-color=>'#000',-hspace=>85,-center=>1);
    }
    $y++;

    delete $gfx->{Filter};

$pdf->saveas("$0.pdf");
$pdf->end();

exit;

__END__