On Tuesday 28 Oct 2003 7:20 pm, you wrote: > Gary, > > While your structure make sense. I'm a little lost here. > > Do you mind given me the basic on the my %whichos > > I don't think I've ever come across this before and need some > Explaination on that. > > Thanks > Phillip > [snip] > > my %whichos=('Solarix'=>'sol','Aix'=>'aix','microsoft'=>'W2K'); > my %commands=('sol'=>{'memory'=>'prtconf | grep Memory | awk '{print $3}', > 'diskfree'=>'..........'} > 'aix'=>{'memory'=>'.......', > 'diskfree'=>'......'} > 'W2k'=>{'memory'=>'........', > 'diskfree'=>'......'}); > > my $OS=''; > foreach my $regex (keys %whichos) { > $OS=$whichos{$regex} if ($details=~/$regex/i); > }
What I'm doing here, is using a list of regex's (actually, in this case they're simply substrings), that I will compare with a given variable within a loop. Once I find a match, I use that regex to access a hash which contains the key to the hash I really want to access. In this way, I can compare the header returned from the Net::telnet to find the OS I want, and then use that to access the hash within the hash of commands. You won't actually need this because you're calling 'uname -s' to select it. > die "cannot find OS" unless ( $OS && defined {$commands{$OS}); > > then simply use %commands{$OS}{memory} to get the command you want > > > Phillip Bruce > > ISC Consultant, System Architect > > Location: Dublin, CA > > * Cell: 408-476-8658 > > * Office: 925-560-7853 > > AIM: OkieUnix -- Gary Stainburn This email does not contain private or confidential material as it may be snooped on by interested government parties for unknown and undisclosed purposes - Regulation of Investigatory Powers Act, 2000 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]