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'
        ];



Reply via email to