On Fri, Nov 07, 2008 at 06:22:34PM +0100, Jeffrey Ratcliffe wrote: > Package: perl > Version: 5.10.0-11
Sorry about the delay. > The attached program illustrates the problem. The output in all recent > versions up to 5.10.0-11 is below: > > $./GO.pl > $VAR1 = { > 'l' => 'foo' > }; > $VAR1 = { > 'L' => 1 > }; > $VAR1 = { > 'l' => 'foo' > }; > $VAR1 = {}; > > As no_ignore_case is turned on, and a -L option is not used, the 'L' > => 1 from the second print statement is incorrect, and should be 'l' > => 1, similarly, the fourth print statement should also produce 'l' => > 1 The L => 1 in the second case is because '-l' is an abbreviation of the 'list-devices' alias, not because it matches the short '-L' form. Quoting the documentation: In the default configuration, options names may be abbreviated to uniqueness, case does not matter, and a single dash is sufficient, even for long option names. and The first name is called the primary name, the other names are called aliases. When using a hash to store options, the key will always be the primary name. so '-L' => 1 seems correct to me. With the fourth statement the '-l' option is not allowed so all the args end up in @ARGV (since pass_through is set.) I don't see a bug here. Please elaborate or let me know if I can close this. -- Niko Tyni nt...@debian.org -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org