#!/usr/bin/perl -w use Inline C => DATA => LIBS => '-lservices'; my( @srvs ) = my_services(); foreach( @srvs ) { foreach( @$_ ) { print $_, " "; } print "\n"; } __END__ __C__ #include void my_services( ) { struct serv *serv_list = serv_load(NULL); struct serv *serv = serv_list; SV *record[3]; AV *entry; Inline_Stack_Vars; Inline_Stack_Reset; for (; serv; serv = serv->next) { record[0] = newSVpv(serv->name, 0 ); record[1] = newSVpv(serv->port, 0 ); record[2] = newSVpv(serv->proto, 0 ); Inline_Stack_Push(newRV_noinc((SV*)av_make(3,record))); } serv_destroy(serv_list); Inline_Stack_Done; }