Hi Assaf. Maybe you should try sending a tied array, so that for my $rec (@array) {...} will work. (hopefully Perl won't pre-fatch all the items...)
See the documentation for the 'tie' command to see which methods you need to implement, and Tie::Array for some shortcuts. Shmuel. Assaf Gordon wrote: > Hello, > > I've have an XS module that exports a C++ class. > Following example EX7 in Dean Roehrich's CookBookA [1], my class/package > compiles and works fine. > > Now, > In the XS/CPP class, I use an STL container to store some information. > What would be the most perl-like way to allow the Perl programmer to iterate > over all the elements in my CPP class ? > > For the sake of this argument, > Let's assume the container is a simple "std::list<int>" - how do expose this > to the Perl programmer ? > I couldn't find a perl typemap that would go with > std::list<int>::const_itearator, so exposing begin()/end() doesn't work > (perhaps I missed something, online examples are scarce with XS+CPP+STL). > > Another complication: > I can't return an perl list/array containing all the elements (there are too > many elements) - I need to iterate them in a perl loop. > > I'd imagine something like: > === > my $obj = MyClass->new(); > my $iter = $obj->begin(); > while ( my $value = $obj->get_next($iter) ) { > # Do something with $value > } > === > > I realize it's not a very perlish style, so any ideas and suggestion would be > appropriated. > > > Thanks, > -gordon > > > > [1] > http://search.cpan.org/~dmr/CookBookA-19960430/ > _______________________________________________ > Perl mailing list > Perl@perl.org.il > http://mail.perl.org.il/mailman/listinfo/perl > _______________________________________________ Perl mailing list Perl@perl.org.il http://mail.perl.org.il/mailman/listinfo/perl