PerlからC言語のライブラリを呼び出すのは少々厄介でした。h2xsというツールを使ってテンプレートを生成した上で作成されたMakefileを使ってビルドするという手順になります。他の記事に倣ってシェル1本で書いたので,苦しい対処ですが,sedコマンドとcatコマンドでで生成されたテンプレートを編集しています。
#!/bin/bash
rm -rf Perl2C
h2xs -A -n Perl2C
source=Perl2C/Perl2C.xs
sed -i -e 's/^MODULE.*$/int add(int,int);\n\nMODULE = Perl2C PACKAGE = Perl2C/g' $source
cat << EOS >> $source
int
add(x, y)
int x
int y
CODE:
RETVAL = x + y;
OUTPUT:
RETVAL
EOS
echo "========================================"
cat $source
echo "========================================"
cd Perl2C
perl Makefile.PL
make
cat << EOF > run.pl
use ExtUtils::testlib;
use Perl2C;
\$x = 1000;
\$y = 2000;
\$result = Perl2C::add(\$x, \$y);
print(\$x . " + " . \$y . " = " . \$result . "\n\n");
EOF
perl run.pl
cd ..
