package Some::Foo; package Some; use strict; use Inline CPP => Config => BUILD_NOISY => 1; use Inline CPP => <<'END'; #include using namespace std; class Foo { int data; public: Foo(); ~Foo(); int get() { return data; } void set(int a) { data = a; } }; Foo::Foo() { cout << "creating a Foo()" << endl; } Foo::~Foo() { cout << "deleting a Foo()" << endl; } END package Some::Foo; return 1 if caller; package main; my $foo = Some::Foo->new(); $foo->set( 1 ); print $foo->get();