Firstly, HI to everyone - and thanks to the gurus for all the good advice for us beginners :) Now, the problem. I was working on a project and realized that if I created a simple shell program I could make things easier for myself. However, when I started to code I found myself with a dilemma: The program has to behave like two different programs depending on how it was called. i.e. it has to know what the instruction used to start it was - ignoring command-line parameters and such like. It would have two instructions for starting it, one the name of the program, the other a link to the same program but using a different name. For example, from the command-line I could run the program by typing [linux]# A -params OR [linux]# B -params I want to be able to know if the program was started using program name A or program name B. In pseudo-code: if (called by A){ do something ....} elsif (called by B){ do a something else ....} The program shares and stores the parameters for use with, (as it appears to the user), either A or B, but both parts of the program can access any of the parameters - they just act differently depending on the name used to start the program. I know that I could write two separate programs but the idea of doing it as one just seemed less untidy...... plus now I'm not going to be happy until I find an answer! I have searched, ok, glanced, you caught me ;), through the perldocs and the Perl Cookbook and found plenty dealing with capturing parameters passed to the program and system interaction, but none quite touching on the problem as I see it. One solution I was mulling over was to try and get access to the bash history (i.e. assume the last entry is our program being called) but the problem is I don't know where or how bash history is stored, nor when the last instruction is saved - i.e. if it is saved after the program executes its of no use to the program. Is there a simple way of doing this? Something like $^O (to get the os), for example? Thanks in advance for your help.