A plausible explanation is that depending on which shell you're running, you have different environment variable settings. Compare the output of
under bash and under csh. Maybe
$LD_LIBRARY_PATH includes the location of
libgtk-12.so.2 when you're in csh but not when you're in bash. Or maybe
$PATH leads to a different
vim executable in csh and in bash (one that requires gtk in bash, and one that doesn't require gtk in csh). To check this, run
type vim under bash and
which vim under csh.
EDIT: based on your comments, there's a
/volume/perl/bin/vim that doesn't work for you, but you also need something in
/volume/perl/bin to come first in the
perl. You have several solutions:
/volume/perl/bin/vim first in
$PATH, and put
alias vim=/usr/local/bin/vim in your
.bashrc and your
$PATH at all, but arrange to run the perl scripts with
/volume/perl/bin/vim instead of your local perl.
$PATH at all. Instead, put
~/bin first in
$PATH, and create symbolic links to what you need from
ln -s /volume/perl/bin/perl ~/bin.
PERL5LIB and not
PATH, in case what you need is not a newer version of perl but some extra libraries. E.g.
setenv PERL5LIB /volume/perl/lib/perl/5.10 (adjust to whatever directories are needed; you can see the default directories for
/volume/perl/bin/perl by running
/volume/perl/bin/perl -le 'map print, @INC').
Upgrade your perl so that your scripts works with them (perhaps in addition to the previous suggestion).
Install the libraries that
Whatever you do, I don't recommend to have different
PATH settings in different shells, it gets confusing very quickly (as you've already noticed). Set
csh is your login shell, otherwise in