I am trying to develop an internal "split" routine to use in decoding
hash entries. The following dummy code illustrates the concept. It ,
however refuses to allow access to the elements of the array. I have
RTFM and CPAN examples and after two days give up - any hints will be
appreciated.
#! /usr/local/bin/perl -w
use Inline C;
use Data::Dumper;
@array = print_data("foo","foobar");
print Dumper @array;
__END__
__C__
static AV* load_data(char* data1, char* data2) {
AV* array = newAV();
SV **svp;
int nitems;
int i;
av_push(array,newSVpvf("%s",data1));
av_push(array,newSVpvf("%s",data2));
nitems = av_len(array);
printf("NITEMS[x]: %d\n",nitems);
for (i=0;i <= nitems;i++) {
svp = av_fetch(array, i, FALSE);
printf("ARRAY[x][%d] = %s\n",i,svp);
}
return array;
}
AV* print_data(char* data1, char* data2) {
AV* array;
int nitems;
int i;
array = load_data(data1,data2);
nitems = av_len(array);
printf("NITEMS[y]: %d\n",nitems);
for (i=0;i <= nitems;i++) {
printf("ARRAY[y][%d] = %s\n",i,array[i]);
}
return array;
}
RESULT:
NITEMS[x]: 1
ARRAY[x][0] =
ARRAY[x][1] =
NITEMS[y]: 1
ARRAY[y][0] =
ARRAY[y][1] =
$VAR1 = [
'foo',
'foobar'
];