in reply to Making a function callable on an object

All you need do is make sure PDFColumn and $page share the same namespace, either by declaring your sub into PDF::Create's ...

sub PDF::Create::PDFColumn { my $page = shift; my $params = shift; # ... }

... or (more elegantly) by sub-classing ...

package PDF::Create::Column; # Try looking for any methods not defined here # in PDF::Create instead. use base qw/ PDF::Create /; sub PDFColumn { my $page = shift; my $params = shift; # ... } 1;

    --k.