in reply to loading C shared object with perl

What am I doing wrong ?

Did h2xs generate that XS file ? Your XS file is missing the following code:
double hypotenuse (double val_x, double val_y) { return sqrt (val_x*val_x + val_y*val_y); }
And that code needs to be placed between the line:
#include "hypotenuse.h"
and the line:
MODULE = Geometry PACKAGE = Geometry
You may subsequently find that you also need to link to libm (-lm) in order to resolve "sqrt".

Cheers,
Rob