I realize it was the last option in your previous tests, but I'm asking you to adjust the order of the args (by adding 1 more option) to see what happens.

Part of the reason is to see if the Windows file type association is configured correctly. If it isn't, it could be cutting off part of the arguments.

What's odd to me is that your previous dump of the @ARGV array did have the value of the queue option and your dump of the hash had it as well but now you're saying that value is missing which is why I asked if you used pop before the GetOptions() call.

I would need to see more of the code to answer that question but I do agree that the code is overly complicated and based on the limited amount of code you've shown, I'd say its logic flow is messy/convoluted.

This app should have been written using one of perl's GUI frameworks and/or used dispatch tables.

The assoc command is used to link the file ext to an executable and the ftype command is used to configure how it's executed and if it should accept arguments and how many args..

Code

C:\>help assoc Displays or modifies file extension associations

ASSOC [ext[=[fileType]]]

.ext Specifies the file extension to associate the file type with fileType Specifies the file type to associate with the file extension

Type ASSOC without parameters to display the current file associations. If ASSOC is invoked with just a file extension, it displays the current file association for that file extension. Specify nothing for the file type and the command will delete the association for the file extension.

fileType Specifies the file type to examine or change openCommandString Specifies the open command to use when launching files of this type.

Type FTYPE without parameters to display the current file types that have open command strings defined. FTYPE is invoked with just a file type, it displays the current open command string for that file type. Specify nothing for the open command string and the FTYPE command will delete the open command string for the file type. Within an open command string %0 or %1 are substituted with the file name being launched through the assocation. %* gets all the parameters and %2 gets the 1st parameter, %3 the second, etc. %~n gets all the remaining parameters starting with the nth parameter, where n may be between 2 and 9, inclusive. For example:

ASSOC .pl=PerlScript FTYPE PerlScript=perl.exe %1 %*

would allow you to invoke a Perl script as follows:

script.pl 1 2 3

If you want to eliminate the need to type the extensions, then do the following:

Having said that, I am now 60. When I got fired almost 8 years ago due to the financial crisis back in 2008, I figured out that it would probably be difficult for me to find a regular employment contract, so I became a free-lance consultant, and that was pretty successful.

A month ago, I finally succeeded to sign a regular employment contract with the company for which I had been consulting in the last 3 and a half years; they feared that, if they did not offer me a regular employment contract, I might be interested to work for a competitor. That's how I've just found a regular job at the age of 60.

you see, I don't know how to be free-lance consultant, I don't now the site and what is the procedure. If you explain me, I would appreciate it. You do it here or write to digioleg@yahoo.com The last company doesn't have programmers. They use contract to fix some problems, I talked to them.