diff options
author | Robert Stone <talby@trap.mtview.ca.us> | 2013-10-20 12:08:07 -0700 |
---|---|---|
committer | Robert Stone <talby@trap.mtview.ca.us> | 2013-10-20 12:17:52 -0700 |
commit | 36b2345df569e62f22a7fb1daa6ba048574c6df8 (patch) | |
tree | dcd5db5b688f2806c2945f8412087180e4f473be | |
parent | 1025b8117b167ad5575bf6799174ef43d74d034a (diff) | |
download | swig-talby-perl5-improvements.tar.gz |
freshen perl5 examplestalby-perl5-improvements
-rw-r--r-- | Examples/perl5/class/runme.pl | 18 | ||||
-rw-r--r-- | Examples/perl5/reference/runme.pl | 26 |
2 files changed, 24 insertions, 20 deletions
diff --git a/Examples/perl5/class/runme.pl b/Examples/perl5/class/runme.pl index 02f31532d..e0c8a6aad 100644 --- a/Examples/perl5/class/runme.pl +++ b/Examples/perl5/class/runme.pl @@ -1,4 +1,6 @@ -# file: runme.pl +#!/usr/bin/perl +use strict; +use warnings; # This file illustrates the low-level C++ interface # created by SWIG. In this case, all of our C++ classes @@ -9,9 +11,9 @@ use example; # ----- Object creation ----- print "Creating some objects:\n"; -$c = new example::Circle(10); +my $c = example::Circle->new(10); print " Created circle $c\n"; -$s = new example::Square(10); +my $s = example::Square->new(10); print " Created square $s\n"; # ----- Access a static member ----- @@ -36,7 +38,7 @@ print " Square = (",$s->{x},",", $s->{y},")\n"; # ----- Call some methods ----- print "\nHere are some properties of the shapes:\n"; -foreach $o ($c,$s) { +foreach my $o ($c,$s) { print " $o\n"; print " area = ", $o->area(), "\n"; print " perimeter = ", $o->perimeter(), "\n"; @@ -48,13 +50,13 @@ print "\nGuess I'll clean up now\n"; # Note: this invokes the virtual destructor -$c->DESTROY(); -$s->DESTROY(); +undef $c; +undef $s; print $example::Shape::nshapes," shapes remain\n"; -$square = example::CFoo->MakeSquare(); -$tsquare = example::CFoo->MakeTSquare(); +my $square = example::CFoo->MakeSquare(); +my $tsquare = example::CFoo->MakeTSquare(); print "Areas ", $square->area(), " ", $tsquare->area(),"\n"; print "Goodbye\n"; diff --git a/Examples/perl5/reference/runme.pl b/Examples/perl5/reference/runme.pl index 41dc0b873..9e86a5c29 100644 --- a/Examples/perl5/reference/runme.pl +++ b/Examples/perl5/reference/runme.pl @@ -1,4 +1,6 @@ -# file: runme.pl +#!/usr/bin/perl +use strict; +use warnings; # This file illustrates the manipulation of C++ references in Perl. # This uses the low-level interface. Proxy classes work differently. @@ -8,8 +10,8 @@ use example; # ----- Object creation ----- print "Creating some objects:\n"; -$a = example::new_Vector(3,4,5); -$b = example::new_Vector(10,11,12); +my $a = example::new_Vector(3,4,5); +my $b = example::new_Vector(10,11,12); print " Created",example::Vector_print($a),"\n"; print " Created",example::Vector_print($b),"\n"; @@ -23,17 +25,17 @@ print " Created",example::Vector_print($b),"\n"; # It returns a new allocated object. print "Adding a+b\n"; -$c = example::addv($a,$b); +my $c = example::addv($a,$b); print " a+b =", example::Vector_print($c),"\n"; # Note: Unless we free the result, a memory leak will occur -example::delete_Vector($c); +undef $c; # ----- Create a vector array ----- # Note: Using the high-level interface here print "Creating an array of vectors\n"; -$va = example::new_VectorArray(10); +my $va = example::new_VectorArray(10); print " va = $va\n"; # ----- Set some values in the array ----- @@ -50,25 +52,25 @@ example::VectorArray_set($va,2,example::addv($a,$b)); $c = example::addv($a,$b); example::VectorArray_set($va,3,$c); -example::delete_Vector($c); +undef $c; # Get some values from the array print "Getting some array values\n"; -for ($i = 0; $i < 5; $i++) { +for (my $i = 0; $i < 5; $i++) { print " va($i) = ", example::Vector_print(example::VectorArray_get($va,$i)), "\n"; } # Watch under resource meter to check on this print "Making sure we don't leak memory.\n"; -for ($i = 0; $i < 1000000; $i++) { +for (my $i = 0; $i < 1000000; $i++) { $c = example::VectorArray_get($va,$i % 10); } # ----- Clean up ----- print "Cleaning up\n"; -example::delete_VectorArray($va); -example::delete_Vector($a); -example::delete_Vector($b); +undef $va; +undef $a; +undef $b; |