in reply to Re^2: Read structure in Perl
in thread Read structure in Perl

Another alternative is to use Inline::C. This reads 'Myfile' correctly for me:
use warnings; use Inline C => <<'EOC'; #define DSZ 108 struct stud { char name[100]; int roll_no; }; struct student { struct stud s; int grade; }value; void foo(char * fn) { FILE *fps; int n; struct student *buffer=(struct student*)malloc(sizeof(struct stud +ent)); fps=fopen(fn,"rb"); n=fread(buffer,DSZ,1,fps); printf("Name:%s Grade:%d NO:%d\n",buffer->s.name,buffer->grade,bu +ffer->s.roll_no); fclose(fps); } EOC foo("Myfile"); # outputs: # Name:myname Grade:1 NO:149
It's trivial to return the values to perl, if need be (rather than simply print them to stdout). And if it's necessary to use perl's IO abstraction interface (see perldoc perlapio) instead of the usual C functions, then I think that could be accommodated, too.

Cheers,
Rob