diff -Naur CGI-FormBuilder-3.09/t/1c-validate.t CGI-FormBuilder-3.09b/t/1c-validate.t
--- CGI-FormBuilder-3.09/t/1c-validate.t	2013-11-30 00:10:36.000000000 +0000
+++ CGI-FormBuilder-3.09b/t/1c-validate.t	2016-05-11 13:10:45.680369595 +0000
@@ -174,11 +174,11 @@
 for my $t (@test) {
 
     my $form = CGI::FormBuilder->new( %{ $t->{opt} }, debug => $DEBUG );
-    while(my($f,$o) = each %{$t->{mod} || {}}) {
-        $o->{name} = $f;
-        $form->field(%$o);
+    for my $field ( sort keys %{ $t->{mod} || {} } ) {
+        my $object = $t->{mod}->{$field};
+        $object->{name} = $field;
+        $form->field( %{ $object } );
     }
-
     # just try to validate
     ok($form->validate, $t->{pass} || 0);
 }
diff -Naur CGI-FormBuilder-3.09/t/1d-messages.t CGI-FormBuilder-3.09b/t/1d-messages.t
--- CGI-FormBuilder-3.09/t/1d-messages.t	2013-11-30 00:10:36.000000000 +0000
+++ CGI-FormBuilder-3.09b/t/1d-messages.t	2016-05-11 13:08:33.159540213 +0000
@@ -70,8 +70,9 @@
 my $locale = "fb_FAKE";
 my $messages = "messages.$locale";
 open(M, ">$messages") || warn "Can't write $messages: $!";
-while (my($k,$v) = each %messages) {
-    print M join(' ', $k, ref($v) ? @$v : $v), "\n";
+for my $k ( sort keys %messages ) {
+  my $v = $messages{$k};
+  print M join(' ', $k, ref($v) ? @$v : $v), "\n";
 }
 close(M);
 
@@ -123,7 +124,7 @@
 # Final test set is to just make sure we have all the keys for all modules
 require CGI::FormBuilder::Messages::default;
 my %need = CGI::FormBuilder::Messages::default->messages;
-my @keys = keys %need;
+my @keys = sort keys %need;
 for my $pm (@pm) {
     my($lang) = $pm =~ /([a-z]+_[A-Z]+)/;
     my $skip = $lang ? undef : "skip: Can't get language from $pm";
diff -Naur CGI-FormBuilder-3.09/t/2a-template-html.t CGI-FormBuilder-3.09b/t/2a-template-html.t
--- CGI-FormBuilder-3.09/t/2a-template-html.t	2013-11-30 00:10:36.000000000 +0000
+++ CGI-FormBuilder-3.09b/t/2a-template-html.t	2016-05-11 13:11:57.438740284 +0000
@@ -102,18 +102,19 @@
 my $seq = $ARGV[0] || 1;
 
 # Cycle thru and try it out
-for (@test) {
+for my $test_item (@test) {
     my $form = CGI::FormBuilder->new(
                     debug => $DEBUG,
                     action => 'TEST',
                     title  => 'TEST',
-                    %{ $_->{opt} },
+                    %{ $test_item->{opt} },
                );
 
     # the ${mod} key twiddles fields
-    while(my($f,$o) = each %{$_->{mod} || {}}) {
-        $o->{name} = $f;
-        $form->field(%$o);
+    for my $field ( sort keys %{ $test_item->{mod} || {} } ) {
+        my $object = $test_item->{mod}->{$field};
+        $object->{name} = $field;
+        $form->field( %{ $object } );
     }
 
     #
diff -Naur CGI-FormBuilder-3.09/t/2b-template-text.t CGI-FormBuilder-3.09b/t/2b-template-text.t
--- CGI-FormBuilder-3.09/t/2b-template-text.t	2013-11-30 00:10:36.000000000 +0000
+++ CGI-FormBuilder-3.09b/t/2b-template-text.t	2016-05-11 13:11:29.861982062 +0000
@@ -97,18 +97,19 @@
 my $seq = $ARGV[0] || 1;
 
 # Cycle thru and try it out
-for (@test) {
+for my $test_item (@test) {
     my $form = CGI::FormBuilder->new(
                     debug => $DEBUG,
                     action => 'TEST',
                     title  => 'TEST',
-                    %{ $_->{opt} },
+                    %{ $test_item->{opt} },
                );
 
     # the ${mod} key twiddles fields
-    while(my($f,$o) = each %{$_->{mod} || {}}) {
-        $o->{name} = $f;
-        $form->field(%$o);
+    for my $field ( sort keys %{ $test_item->{mod} || {} } ) {
+        my $object = $test_item->{mod}->{$field};
+        $object->{name} = $field;
+        $form->field( %{ $object } );
     }
 
     #
diff -Naur CGI-FormBuilder-3.09/t/2d-template-fast.t CGI-FormBuilder-3.09b/t/2d-template-fast.t
--- CGI-FormBuilder-3.09/t/2d-template-fast.t	2013-11-30 00:10:36.000000000 +0000
+++ CGI-FormBuilder-3.09b/t/2d-template-fast.t	2016-05-11 13:15:58.497630259 +0000
@@ -135,18 +135,19 @@
 my $seq = $ARGV[0] || 1;
 
 # Cycle thru and try it out
-for (@test) {
+for my $test_item (@test) {
     my $form = CGI::FormBuilder->new(
                     debug => $DEBUG,
                     action => 'TEST',
                     title  => 'TEST',
-                    %{ $_->{opt} },
+                    %{ $test_item->{opt} },
                );
 
     # the ${mod} key twiddles fields
-    while(my($f,$o) = each %{$_->{mod} || {}}) {
-        $o->{name} = $f;
-        $form->field(%$o);
+    for my $field ( sort keys %{ $test_item->{mod} || {} } ) {
+        my $object = $test_item->{mod}->{$field};
+        $object->{name} = $field;
+        $form->field( %{ $object } );
     }
 
     #
diff -Naur CGI-FormBuilder-3.09/t/2e-template-ssi.t CGI-FormBuilder-3.09b/t/2e-template-ssi.t
--- CGI-FormBuilder-3.09/t/2e-template-ssi.t	2013-11-30 00:10:36.000000000 +0000
+++ CGI-FormBuilder-3.09b/t/2e-template-ssi.t	2016-05-11 13:12:37.526388964 +0000
@@ -102,18 +102,19 @@
 my $seq = $ARGV[0] || 1;
 
 # Cycle thru and try it out
-for (@test) {
+for my $test_item (@test) {
     my $form = CGI::FormBuilder->new(
                     debug => $DEBUG,
                     action => 'TEST',
                     title  => 'TEST',
-                    %{ $_->{opt} },
+                    %{ $test_item->{opt} },
                );
 
     # the ${mod} key twiddles fields
-    while(my($f,$o) = each %{$_->{mod} || {}}) {
-        $o->{name} = $f;
-        $form->field(%$o);
+    for my $field ( sort keys %{ $test_item->{mod} || {} } ) {
+        my $object = $test_item->{mod}->{$field};
+        $object->{name} = $field;
+        $form->field( %{ $object } );
     }
 
     #
