Hi,

how can I create an instance of a Perl-class in XS.


1. Both defined in XS: ====================== Soccer.xs: -----------------------8<----------------------- MODULE = Soccer PACKAGE = Soccer::Team

Team *
new(CLASS)
    char *CLASS
  CODE:
    .......
  OUTPUT:
    RETVAL

Player *
Team::getPlayer(p_id)
    int p_id
  CODE
    ## create a new player new Soccer::Player(p_id)
    ## how is this done?????


MODULE = Soccer PACKAGE = Soccer::Player


Player *
new(CLASS,p_id)
    char *CLASS
    int p_id
  CODE:
    .......
  OUTPUT:
    RETVAL
-----------------------8<-----------------------


2. 1 defined in XS 1 defined in Perl: ======================================= Soccer.xs: -----------------------8<----------------------- MODULE = Soccer PACKAGE = Soccer::Team

Team *
new(CLASS)
    char *CLASS
  CODE:
    .......
  OUTPUT:
    RETVAL

Player *
Team::getPlayer(p_id)
    int p_id
  CODE
    ## create a new player new Soccer::Player(p_id)
    ## how is this done?????
-----------------------8<-----------------------

Soccer.pm:
-----------------------8<-----------------------
package Soccer::Player;

sub new {
  my $class = shift;
  my $p_id  = shift;

  return bless { id => $p_id }, $class;
}
-----------------------8<-----------------------



Reply via email to