Hi,

I'm trying to use Inline::CPP to speed up a Perl script, and I'm having
some problems doing so. I've read the Inline perldocs as best as I can.

The problem I'm having is writing a Perl module, a .pm file, containing
Inline C++ code that I can "use"  module in a wrapping perl script.

The inline code seems to work (compiles, gives required results) fine if
I dont make it a .pm file, ie, make it a .pl file and run the script.

If instead of making two separate files as below, I simply execute
ballz() in the file containing the C++ code (with suitable changes to
the shebang line etc), it works fine.

Any help will be greatly appreciated.

Venky.



The error I get from the following code is:
---------------------------------------------------
Unknown error
Compilation failed in require at ./ballz.pl line 6.
BEGIN failed--compilation aborted at ./ballz.pl line 6.
----------------------------------------------------

Rather informative :)


Here is the code:

----- Ballz.pm ------ 


package Ballz;

use strict;
use warnings;
use base 'Exporter';

our @ISA = qw( Exporter );
our $VERSION = 0.01;

use Inline::Files;
use Inline (
              CPP => 'BELOW',
              NAME => 'Ballz',
              ENABLE => 'STD_IOSTREAM'
            );

sub ballz($);

sub ballz($)
{
    my( $rad ) = @_;
    my $football = Ball( $rad );
    print "Old radius = ", $football->get_radius(), "\n";

    $football->set_radius( 6 );
    my $newr = $football->get_radius();
    
    print "New Radius = $newr \n";
    
}



__END__
__CPP__


class Ball {
 public:
  int radius;

  Ball(int r);
  void set_radius(int r);
  int get_radius();

};

Ball::Ball( int r )
{
    radius = r;
}


void Ball::set_radius(int r)
{
    radius = r;
}


int Ball::get_radius()
{
    return radius;
}



-------------------------- END Ballz.pm ------------------------------


Here is the wrapping script:


--------------------------- ballz.pl -----------------------------------


#!/usr/bin/perl

use strict;
use warnings;
use Ballz;

ballz( $ARGV[0] );

--------------------------- END ballz.pl -------------------------------


Reply via email to