in reply to Re^2: Mulitple values for a key in a hash
in thread Mulitple values for a key in a hash

wishartz:

I think this is a bit more like what tcf03 was suggesting:

#!/usr/bin/perl -w #added use strict; #added use Data::Dumper #added my $host = $ARGV[0]; #update was 'hosta'; my $fsys = $ARGV[1]; #update was qq|/the/second/filesystem|; my %filesystems = ( hosta => { #update desc => 'x', filesystems => { #update qq|/the/first/filesystem| => 0, qq|/the/second/filesystem| => 0 } #update }, #update hostb => { #update desc => 'r', filesystems => { #update qq|/the/first/filesystem| => 0, qq|no filesystemB for 2nd host | => 0 } #update } #update ); print Dumper(\%filesystems); #added if ( ! exists $filesystems{$host}{filesystems}{$fsys} ) { print "error\n"; } else { print "Found filesystem $fsys on host $host\n" . $filesystems{$host}{descr} . "\n"; }
Note: Untested!

...roboticus Update: You'll notice that this node has been edited heavily. I've added some lines (suitably marked), included Data::Dumper (which is how I found my goofs). The error was that I used parenthesis () instead of curlies {} in my hash declarations.

Replies are listed 'Best First'.
Re^4: Mulitple values for a key in a hash
by wishartz (Beadle) on Nov 30, 2007 at 11:29 UTC
    At the momment I am using the following: But it is still reporting an error, even though, I am running it on the correct host and the file system is on the host. Is the check correct? Am I defreferencing it properly?
    $host=`hostname`; $filesystem = ARGV[0]; my %filesystems = ( hosta => (desc => 'x', filesystems => (qq|/dat +a/file/a| =>0, qq|/data/file/b| =>0)), tx05 => (desc => 'r',filesystems => (qq|/data/ +file/c| =>0, qq|no filesystemB for 2nd host | => 0))); if ( ! exists $filesystems{$host}{filesystems}{$filesystem} ) { print "error\n";} else {print "Found filesystem $filesystem on host $host\n". $filesyste +ms{$host}{descr}."\n";}
      wishartz:

      I've fixed my goofs in my earlier node (I used parenthesis instead of curly braces in the data structure!). You should have better luck this time ... it's no longer untested. ;^)

      ...roboticus

Re^4: Mulitple values for a key in a hash (Pennance Required)
by wishartz (Beadle) on Dec 03, 2007 at 11:42 UTC
    Roboticus your program worked. Thanks so much roboticus and everybody else who helped.