in reply to Re: Confused: Hashrefs in TieRegistry
in thread Confused: Hashrefs in TieRegistry
whahey - the code works, a big list of associations and extenstions scrolls by, albiet puntuated with complaints about being unable to recognise association list and use of unitialised values or string in concatenation...
but yeah, the job that ikegami did was great - I need to go and look up the next and substr and then I can use this as a lesson for further mongering.
out of curiosity my own tangled efforts had reached here:
my $class; my $val; my $key; my $watchnum = 0; my $error; unless (defined($ARGV[0])){ foreach $class (keys %{ $Registry->{"Classes:"} }){ if ($class =~ /^[.]/) { my %RegHash = %{ $Registry->{"Classes:$class"} }; $error = Dumper %RegHash; while (my ($key, $val) = each(%RegHash)){#or die "failure +to read registry: $! \nlast contents of Registry Hash = $error \n"; if ($val eq ":"){ print "$class = $key\n"; $watchnum = 1; } } if ($watchnum == 0){ die "failure to recognise association list: $!"; } } } }
on another note I now just need to mod this so that it can accept some arguments and ergo change associations - I'm trying to make a setup that will automatically change the default browser on an ME system, I thought a cool way to do that would be to re-write the Windows 2000+ ftypeand assoc in perl (it's mainly just the ftype association that dictates main browser) So some additional args and repeat the trick for ftype. It has also occured to me too check whether there's a CPAN module for associations...
update:I managed to get this to work without squaking:
It's ugly and I don't know if it's complete, will have to analyse further - if i din't comment out the warns, it would squak at every single subkey and value under the $class, so if exists is probably best...#!/usr/bin/perl use warnings; use strict; use Win32::TieRegistry (Delimiter => ":"); use Data::Dumper; my $class; my $val; my $key; my $error; unless (defined($ARGV[0])){ foreach $class (keys %{ $Registry->{"Classes:"} }){ if ($class =~ /^[.]/) { my $RegHash = $Registry->{"Classes:$class"}; #$error = Dumper %RegHash; while (my ($key, $val) = each(%$RegHash)){#or die "failure + to read registry: $! \nlast contents of Registry Hash = $error \n"; if ($key eq ":"){ print "$class = $val\n"; } #else{ # warn "unable to recognise association for $class" #} } } } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Confused: Hashrefs in TieRegistry
by ikegami (Patriarch) on Aug 16, 2006 at 12:10 UTC | |
by Maze (Sexton) on Aug 16, 2006 at 12:44 UTC | |
|
Re^3: Confused: Hashrefs in TieRegistry
by ikegami (Patriarch) on Aug 16, 2006 at 12:09 UTC |