TypeError in method 'version', argument 1 of type 'void *' at ./test_swig.pl line 8
You've specified in your C++ code that the version method takes a single argument, but when you call that method from perl you provide no argument at all.
I don't really know what version() is supposed to do, but if the correct way to call it from perl is to provide no arguments, then the C++ code should also declare version() as taking no arguments:
int version();
or, if C++ complains about that, try:
int version(void);
UPDATE: Duh ... my stupidity ...
$control->version() does, of course, pass one argument to the version function.
Sorry - I have some experience with C and perl, but little experience with C++, and virtually no experience with SWIG.
A more common approach to having perl access C++ code is via the perl module Inline::CPP (instead of SWIG).
Cheers,
Rob