I've looked over your tests scripts and it's clear that you don't understand the concept of a self contained test script that others can run. They both are using multiple custom modules which no-one else has access to so they can't test the scripts. They are also filled with unnecessary code, questionable to very poor code formatting and overall is poorly designed.

Regarding the value of the "queue", you didn't apply the correction that I told you it needed and that is why you still have the problem with that hash value.

Saying "it is not working anyway" is a very poor problem description and doesn't give any info on how it's failing. The code corrections I made in the test scripts I posted work correctly. I have no idea what changes you made to your code so I can't say why your code doesn't work.

I see the problem, but I can't work on it now. At 10 Am boss will come to test the program. I will explain him and if he let me change, I will. Otherwise , sorry. I am just consulting. The problem is that in menu program owner commented two elements, but in GetOptions - not, and queue getting to different place. If the boss want to spend more money, I can change it. Otherwise today is my last day.

The problem is that in menu program owner commented two elements, but in GetOptions - not, and queue getting to different place

If the Getoptions() function is being used to parse the args, the ordering of the options won't matter but if shift/pop is being used to manually parse the args, then the order will make a big difference and is one of the reasons I said that using that approach is a bad idea.

After I supply values, it goes to program and didn't print queue number even I make pop for it, then go to GetOptions and show the error, which I mention

Your wording in that sentence is a little confusing, but if you use pop before calling GetOptions(), then obviously the value for the last option (presumably the queue option) would be stripped out of the @ARGV array and cause the error message to be generated.