freshen perl5 examples
diff --git a/Examples/perl5/class/runme.pl b/Examples/perl5/class/runme.pl
index 02f3153..e0c8a6a 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 @@
 # ----- 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 @@
 # ----- 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 @@
 
 # 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 41dc0b8..9e86a5c 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 @@
 # ----- 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 @@
 # 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 @@
 
 $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;