For perl and shell scripts I would actually recommend you put them in exec/. from Writing R Extensions
Subdirectory exec could contain additional executable scripts the package needs, typically scripts for interpreters such as the shell, Perl, or Tcl. NB: only files (and not directories) under exec are installed (and those with names starting with a dot are ignored), and they are all marked as executable (mode 755, moderated by ‘umask’) on POSIX platforms. Note too that this is not suitable for executable programs since some platforms (including Windows) support multiple architectures using the same installed package directory.
The main benefit to inst/perl as suggested above is that the scripts in exec are marked as executable automatically when the package is installed.
Mara pointed out to me that the inst/ directory is also a suitable place where scripts in other languages could go into subdirectories like, for example, inst/perl (see http://r-pkgs.had.co.nz/inst.html#inst-other-langs).
The convention is to put scripts of this nature into a subdirectory of inst/, inst/python, inst/perl, inst/ruby etc. If these scripts are essential to your package, make sure you also add the appropriate programming language to the SystemRequirements field in the DESCRIPTION. (This field is for human reading so don’t worry about exactly how you specify it.)
If you have other languages you want compiled, you can use a custom makefile. See the Compiling in subdirectories section in Writing R Extensions.