PHPからPerlを実行するには

過去に開発したPerl言語によるスクリプト(いわゆるCGI)をPHP化する必要に迫られ、とはいえ一部のサブルーチンはPerlで実行したかったので、以下メモを残します。

まずは実行したいPerl(sample.cgi)を用意する。
引数が「(大文字)ABC」ならば「OK」それ以外ならば「NG」を変数 $result に入れて読み込み元のPHPに返すという内容です。

  #!/usr/bin/perl

  if($ARGV[0] eq 'ABC'){
    $result = 'OK';
  } else {
    $result = 'NG';
  }

  print $result;
  exit;
続いてCGIを読み込むPHPを用意します。
<?php
  $result = exec('/usr/bin/perl sample.cgi abc');
  echo $result;
?>

※ 上記PHP(sample.php)とCGI(sample.cgi)は同じ階層にあり、Perlまでのパスは #!/usr/bin/perl の場合を想定しています。

※ 上記PHP内の引数は「abc」なので結果は「NG」が返されます。この「abc」を「ABC」に変更すると「OK」が返されます。

※ 引数が複数ある場合はabcに半角空白区切で続けます
例) 「abc」と「def」と「ghi」がある場合
sample.cgi abc def ghiのようにします