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


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

#!/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);