in reply to Re: multi level hash terror - if statement to access specific elements
in thread multi level hash terror - if statement to access specific elements

Thanks but that still prints out the entire hash instead of just the last name of "Gay"
  • Comment on Re^2: multi level hash terror - if statement to access specific elements

Replies are listed 'Best First'.
Re^3: multi level hash terror - if statement to access specific elements
by beech (Parson) on Feb 13, 2016 at 03:41 UTC

    Thanks but that still prints out the entire hash instead of just the last name of "Gay"

    So you want to fix this?

    for my $key ( keys %names ) { for my $key2 ( keys $names{$key} ) { print "First Name:" . $names{$key}{$key2}[0], "\n"; if ( $names{$key}{$key2}[0] = 'Gay' ) { print "Last Name:" . $names{$key}{$key2}[1] . "\n"; } } }

    You want to only print when last name is Gay?

    Its simple, get rid of the other print statement

      Removing the print doesn't help - it is printing every last name in the database table. I just want it to print the surname of 'Gay' when it finds the first name 'Gay'. Only surnames should be printed whose first name is 'Gay' It seems to be printing every surname in the table.

      for my $key (keys %names){ for my $key2(keys $names{$key}){ if ($names{$key}{$key2}[0] = 'Gay'){ print "Last Name:".$names{$key}{$key2}[1]."\n"; } } }
      Thanks for the help here :)

        ...Removing the print doesn't help ... = 'Gay'

        Why are you still using the assignment operator instead of the string equality comparison operator eq?