Program Version Switch 1.03 review

by on

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

License: GPL (GNU General Public License)
File size: 74K
Developer: mws
0 stars award from

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.

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.

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.

What's New in This Release:
Fixed a bug which could cause segmentation violation.

Program Version Switch 1.03 keywords