diff -Nurd -x'*~' Devel-PPPort-3.36.orig/t/ppphtest.t Devel-PPPort-3.36/t/ppphtest.t
--- Devel-PPPort-3.36.orig/t/ppphtest.t	2017-05-14 04:47:21.000000000 -0400
+++ Devel-PPPort-3.36/t/ppphtest.t	2018-01-22 11:40:04.000000000 -0500
@@ -121,7 +121,7 @@
 {
   my @args = ('ppport.h', @_);
   unshift @args, $inc if $inc;
-  my $run = $perl =~ m/\s/ ? qq("$perl") : $perl;
+  my $run = $perl;
   $run .= ' -MMac::err=unix' if $isMAC;
   for (@args) {
     $_ = qq("$_") if $isVMS && /^[^"]/;
@@ -216,8 +216,22 @@
 sub find_perl
 {
   my $perl = $^X;
+  if ($] >= 5.010 && $Config{"byteorder"} =~ /^1/) {
+      # little-endian means intel (not powerpc), for which fink has
+      # multiple single-arch distros that are seen by a single (fat)
+      # perl interp from apple for a perl version supported by fink
+      # (i.e., starting with 5.10.0). This is the logic taken from
+      # Fink::PkgVersion as of fink-0.29.13.
+      if ( $Config{"longsize"} == 4 ) {
+	  $perl = "/usr/bin/arch -i386 $^X";   # 32-bit
+      } else {
+	  $perl = "/usr/bin/arch -x86_64 $^X"; # 64-bit
+      }
+  } elsif ($perl !~ /^\//) {
+      $perl = "/usr/bin/env $^X";
+  }
 
-  return $perl if $isVMS;
+  return $perl;
 
   my $exe = $Config{'_exe'} || '';