use NativeCall; class TopWindow {...} class TopWindow is repr('CPointer') is export { sub TopWindow_TopWindow_c() returns TopWindow is symbol('TopWindow_TopWindow_c') is native("whatever") { * } multi method new() returns TopWindow { return TopWindow_TopWindow_c();} } my $t = TopWindow.new();