sub my_func { my( $string, $int, @strings )= @_; my $ptrs= pack "P" x @strings, @strings; $ptrs .= pack "LL", 0, 0; # For odd systems with sizeof(IV) < sizeof(void *) _my_func( $string, $int, $ptrs ); } # and void _my_func( st­ring, integer, strings ) const char * string int integer char * strings CODE: my_func( string, integer, (char **)(strings) );