http://qs321.pair.com?node_id=1097912


in reply to How to run perl5.21.3 as "perl"

which is a utility rather than a shell command in sh and sh-derived shells. As such, it knows nothing of the shell's aliases and such. It just searches the path.

To find out what bash will execute when you type perl, use type perl. It will tell you if it's an alias. It will tell you if it's "hashed", which is to say cached. The cache can be cleared using hash -r.

Update: Added "in sh and sh-derived shells".

Replies are listed 'Best First'.
Re^2: How to run perl5.21.3 as "perl"
by tobyink (Canon) on Aug 19, 2014 at 00:38 UTC

    bash doesn't have a built-in which? tcsh does, which is quite handy...

    $ which perl /home/tai/perl5/perlbrew/perls/perl-5.20.0/bin/perl $ which ls ls: aliased to ls --color=tty $ which which which: shell built-in command.

      You seem to have stopped reading my post before the second paragraph. The whole point of my post was to show how to do what tcsh's which does.

      $ type perl perl is /home/ikegami/usr/perlbrew/perls/5.20.0t/bin/perl $ perl -e1 $ type perl perl is hashed (/home/ikegami/usr/perlbrew/perls/5.20.0t/bin/perl) $ type ls ls is aliased to `ls -F -1 --color=auto' $ type type type is a shell builtin