PS: here is the main program.

use pdl_subclass ; # qw/myfunc/;
use 5.10.0;

say "A ",myfunc();
say ones(10);



On 11/02/2016 05:23 PM, Ingo Schmid wrote:
> Hi,
>
> I have troubles using a subclass of PDL and exporting PDL as well as my
> own functions. If I uncomment the Exporter line, I get myfunc() alright,
> but not the PDL namespace. Is there a way to get both?
>
> Ingo
>
>
>
> #!/usr/bin/perl
>
> package pdl_subclass;
>
> use strict;
> use 5.10.0;
> use base 'PDL';
> use PDL;
>
> $pdl_subclass::ISA = qw/PDL/;
> use Storable qw(dclone);
> use PDL::Exporter;
> #use Exporter qw/import/;
> our @EXPORT=qw/myfunc/;
>
>
> sub new {
>    my $class = shift;
>     say "Hello! $class";
>
>    my $data = $_[0];
>
>    say $data;
>    my $self;
>    if(ref($data) eq 'PDL' ){ # if $data is an object (a pdl)
>        $self = $class->initialize;
>        $self->{PDL} = $data;
>    }
>    else{    # if $data not an object call inherited constructor
>        $self = $class->SUPER::new($data);
>    }
>    return $self;
> }
>
> ####### Initialize function. This over-ridden function is called by the
> PDL constructors
> sub initialize {
>     my $class = shift;
>         my $self = {
>                 PDL => PDL->null,     # used to store PDL object
>         someThingElse => 42,
>         };
>     $class = (ref $class ? ref $class : $class );
>         bless $self, $class;
> }
>
> ###### Derived Object Needs to supply its own copy #####
> sub copy {
>     my $self = shift;
>    
>     # setup the object
>     my $new = $self->initialize;
>     $new=dclone($self);
>     # copy the PDL
>     $new->{PDL} = $self->{PDL}->SUPER::copy;
>     # copy the other stuff:
>     return $new;
> }
>
> sub myfunc {
>     "Hello world!";
> }
> 1;
> __END__
>
>
> ------------------------------------------------------------------------------
> Developer Access Program for Intel Xeon Phi Processors
> Access to Intel Xeon Phi processor-based developer platforms.
> With one year of Intel Parallel Studio XE.
> Training and support from Colfax.
> Order your platform today. http://sdm.link/xeonphi
> _______________________________________________
> pdl-devel mailing list
> pdl-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pdl-devel



------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
pdl-devel mailing list
pdl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-devel

Reply via email to