Perl内でRをバッチモードで動かす

#!/usr/bin/perl
print "Content-type:text/plain\n\n";
$PostData=$ENV{'QUERY_STRING'};
#//POSTで送ったデータを変換
@input=split(/&/,$PostData);
foreach $lines(@input){
   ($name,$value)=split(/=/,$lines);
   $value =~ tr/+/ /;
   $value =~ s/%([0-9A-Fa-f]{2})/pack("C",hex($1))/eg;
   $FORM{$name} = $value;
}

$script = "/tmp/rwrap$$.R";
open(SCRIPT, ">$script");
#<<とEOFはくっつける
print SCRIPT <<EOF;
##############################################################

Rのプログラム

##############################################################
EOF
close(SCRIPT);

system("R --vanilla --slave < $script");
($Rstat = $?/256) && die "Aborted in R with status $Rstat.?n";

unlink $script;
exit(0);
最終更新:2008年02月04日 11:59