[R] Problem calling R from within perl script on Windows

Gabor Grothendieck ggrothendieck at gmail.com
Fri Jun 18 23:03:17 CEST 2010


On Fri, Jun 18, 2010 at 3:11 PM, Barry Hall <barryhall at zeninternet.com> wrote:
>
> I need to call R from within a Perl script.  I do so using a system call like
> this:
> @args = ('R --vanilla --quiet --file=Rblock');
> system(@args) == 0 or die "system @args failed: $!";
>
> The script works perfectly when run in Mac OSX or Linux.  In Windows XP it
> fails with the message " 'R' is not recognized as an internal or external
> command, operable program or batch file".
>
> To ensure that R was properly installed and that the environment variable
> "path" was correctly set, I executed the same command (R --vanilla --quiet
> --file=Rblock) from the command line and it worked perfectly; i.e. R ran
> with the expected behavior.
>
> Similar system calls to other external programs, e.g.
> @args = ('Notepad');
> system(@args) == 0 or die "system @args failed: $!";
> work perfectly.
>
> Is there any obvious reason that this particular call works from the command
> line but not from within a perl script?
>

That error is coming from the Windows console so you likely have a
PATH problem.  Fix your path or use the absolute path in your program.

Note that unless you told it not to under normal circumstances the R
installer puts a key in the registry and you can alternatively look it
up to find R that way.  A batch file that does that is in the
batchfiles collection at http://batchfiles.googlecode.com



More information about the R-help mailing list