in reply to Windows Registry - printing keys

I think you'll get what you want if you change
my @reg= %{ ... };
to
my @reg= keys %{ ... };

Also, $Registry is already provided to you.

use strict; use warnings; use Win32::TieRegistry; my @reg = keys %{ $Registry->{"HKEY_CLASSES_ROOT\\batfile\\"} }; for ( @reg ) { print "$_\n"; }

outputs

DefaultIcon\ shell\ shellex\ \ \EditFlags