Написать функцию C для сериализации связанного списка в виде строки или, что еще лучше, написать набор функций: new_list, destroy_list, add_item, remove_item, walk_list (должен взять ссылку на функцию и вызвать ее для каждого элемента в списке) , Тогда вы могли бы сказать что-то вроде:
my $list = $new_list;
add_item $list, 5;
add_item $list, 6;
add_item $list, 7;
walk_list $list, sub { print $_[0] }; #prints 567
destroy_list $list;