Program Version Switch (pvswitch)

What is it?

pvswitch is a very tiny program which makes it possible to use different program
installations on one machine flawlessly.

It's flexibility is intended for people who need to run programs 
against different interpreter versions.

But it can also be used for different purposes like switching the version of
a compiler, text editor, mail reader, browser, whatever.

Why do I need a tool for this?

Actually it is most useful for developers of interpreter based programs which
are started via a hash-bang line (#!).

The following example explains the usage for perl programs, but the very same 
is true for all other interpreter languages.

If you install two or more different perl versions on your machine, you 
could just call the respective perl binary you want to use..


This works fine, although it isn't very convenient. However if you are
starting your program using the hash-bang line like

	#! /usr/bin/perl

and then just start it by


you would need to change the file itself to use another perl version.
Again it is possible, but not very convenient.

And here comes pvswitch: it's purpose is to make such situations convenient.
Further it solve some problems which come up if multiple people want to
use different perl versions. pvswitch allows even to run one program in two 
shells with different perl versions. This is possible because pvswitch
uses a environment variable to select the interpreter version to use. This 
environment variable can be set in different sessions independently.

How does it work?

pvswitch is installed as new program binary (e.g. perl) the old one will
be renamed to program.pvswitch.

Now every time you execute a this program (e.g. perl), pvswitch is executed. 
It doesn't matter how you start the program...

	./ # if it has a hash-bang '#! /usr/bin/perl'

for both cases the pvswitch binary will be executed, pvswitch will than 
check for the environment variable PVSWITCH_PERL_BINARY (if you are running perl),
if it is found it tries to find this key in the configuration file pvswitch.conf
and execute the program which is configured for the version configured set
in the environment variable (e.g. perl.pvswitch).
So it just executes the real program (e.g. perl interpreter). Depending on
the environment a different version might be selected.

There are some convenient tools (e.g. perlver, pvconfig) to configure this.


pvswitch will not work for executables which are liked to use a specific 
program version. Most prominent example is mod_perl.

Obtaining the most recent version

You can fetch the latest pvswitch version at the authors homepage:

How can I install pvswitch?

Please have a look into the INSTALL document included in this distribution.

Authors contact


    Program Version Switch (pvswitch)
    Copyright (C) 2004  Markus Winand <>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


Do not use offset for pagination. Learn why.


Last modification:
Sat Nov  7 00:12:18 2009
Informationen zu E-Commerce und Mediengesetz