**** hfuncs.xs***** #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include #include #include #include "ppport.h" MODULE = hfuncs PACKAGE = hfuncs void for_sub_(int &i,double &x, double &y, int &ny) PPCODE: for_sub_(&i, &x, y, &ny); ***** test.pl **** #! /opt/perl5/bin/perl -w use ExtUtils::testlib; use ExtUtils::F77; use hfuncs; use lib "/usr/lib/perl5/site_perl/5.8.8/ExtUtils/F77"; use lib "/u0/lib/perl5/site_perl/5.8.8/ExtUtils/F77"; $i=1; $ny=3; $x = 3.14159; @y = (1.1, 2.2, 3.3); printf "Perl calling Fortran subroutine, passing\n"; printf"i= $i, x= $x\n"; printf"y[] = $y[0], $y[1], $y[2]\n"; hfuncs::for_sub_(\$i, \$x, \@y, \$ny);