The main issue is usually I/O ie if you access the OS in such a way that you have hard-coded expectations of the dir structures, esp things like the /etc dir.
For Perl, it should be fairly transparent.
For shell, you need to (ideally) specify the same login shell in Linux as you have in OSF/1 (see the entry in /etc/passwd or equiv).
Changing shells isn't a total nightmare, but you'll have to test each file carefully (of course you'll be doing that anyway, right??)
C/C++ will probably be the hardest problem, unless there is a gcc compiler on there (OSF/1) and you are using it. gcc is the default on Linux.