diff --git a/Examples/perl5/inline/Makefile b/Examples/perl5/inline/Makefile new file mode 100644 index 000000000..4ac085ec3 --- /dev/null +++ b/Examples/perl5/inline/Makefile @@ -0,0 +1,7 @@ +all: + +run: + perl runme.pl + +clean: + rm -fr _Inline *~ diff --git a/Examples/perl5/inline/README b/Examples/perl5/inline/README new file mode 100644 index 000000000..33be94973 --- /dev/null +++ b/Examples/perl5/inline/README @@ -0,0 +1,2 @@ +This example requires the Inline::SWIG package. + diff --git a/Examples/perl5/inline/runme.pl b/Examples/perl5/inline/runme.pl new file mode 100644 index 000000000..6ae230210 --- /dev/null +++ b/Examples/perl5/inline/runme.pl @@ -0,0 +1,34 @@ +use Inline SWIG => <<"END_CODE", SWIG_ARGS => '-c++ -shadow', CC => 'g++', LD=>'g++'; + class Foo { + public: + int meaning() { return 42; }; + }; +END_CODE + +my $o = new Foo(); +print $o->meaning(),"\n"; + +use Inline SWIG => ' ', SWIG_INTERFACE => <<"END_CODE", SWIG_ARGS => '-c++', CC => "g++", LD => "g++"; +%include std_string.i +%inline { + template + class Bar { + Type _val; + public: + Bar(Type v) : _val(v) {} + Type meaning() { return _val; } + }; +} +%template(Bar_i) Bar; +%template(Bar_d) Bar; +%template(Bar_s) Bar; +END_CODE + +my $o = new Bar_i(1); +print $o->meaning(),"\n"; + +my $o = new Bar_d(2); +print $o->meaning(),"\n"; + +my $o = new Bar_s("hello"); +print $o->meaning(),"\n";