Solved

problem when hash value is null

Posted on 2007-11-27
10
172 Views
Last Modified: 2010-03-05
I am retrieving a resultset from the database and pushing the data to hash.

push @{$h{$data[1]}{$data[0]}{$data[2]}{$data[3]}},@data[4,5];

This works fine if the data in 4th and 5th field is not null. But if it is null. The hash is not retrieving the result. Please help
0
Comment
Question by:saibsk
  • 5
  • 3
  • 2
10 Comments
 
LVL 39

Expert Comment

by:Adam314
ID: 20361442
What do you want to put in your hash when 4th and 5th fields are null?
0
 

Author Comment

by:saibsk
ID: 20361483
I am writing the data to a file. So when the data fields 1, 0, 2, 3 are same I group them and the corresponding 4th and 5th values are written to a file. But when the 4th and 5th fields are null. That record from the result set is not being written to the file.  If the 4th and 5th fields are null I want to write empty strings with corresponsing 0,1,2,3 fields to the file.
0
 

Expert Comment

by:shayne321
ID: 20361686
This would be one way:

$val1 = $data[4] || '';
$val2 = $data[5] || '';

push @{$h{$data[1]}{$data[0]}{$data[2]}{$data[3]}}, ($val1, $val2);

In this way if the 4th and 5th fields are undefined the "or" condition will evaluate to an empty string ('')
0
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 

Accepted Solution

by:
shayne321 earned 500 total points
ID: 20361707
Or, without using temporary variables:

$data[4] = '' unless (defined $data[4]);
$data[5] = '' unless (defined $data[5]);
push @{$h{$data[1]}{$data[0]}{$data[2]}{$data[3]}},@data[4,5];
0
 

Author Comment

by:saibsk
ID: 20361782
doesn't work. Problem still exists. Please advise.
0
 
LVL 39

Expert Comment

by:Adam314
ID: 20361785
How are you writing the data to a file?  Post the code for that part of your program.
0
 

Author Comment

by:saibsk
ID: 20361805
for my $key1 (sort keys %h) {      
      
            print FH "\n#Group $key1 Accounts\n";
                  for my $key0 (sort keys %{$h{$key1}}){
                  for my $key2 (sort keys % {$h{$key1}{$key0}}){
                        for my $key3 (sort keys % {$h{$key1}{$key0}{$key2}}){
                              #print "\@\$h{$key1}{$key0}{$key2}{$key3} = @{$h{$key1}{$key0}{$key2}{$key3}}\n";
                  
                  @arr = ($key0,$key1,$key2,$key3,@{$h{$key1}{$key0}{$key2}{$key3}});
            print FH join("\t,",@arr)."\n";
            }
      }
}
      print FH "\n";      
}
0
 
LVL 39

Expert Comment

by:Adam314
ID: 20361862
push @{$h{$data[1]}{$data[0]}{$data[2]}{$data[3]}},[@data[4,5]];
0
 

Author Comment

by:saibsk
ID: 20365540
Doesn't seem to work
0
 

Author Comment

by:saibsk
ID: 20365859
I had to make few changes to the resultset with that shayne321 solution works.
0

Featured Post

ScreenConnect 6.0 Free Trial

Explore all the enhancements in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI, app configurations and chat acknowledgement to improve customer engagement!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
binary to char / hexadecimal 5 114
cpan issue 1 64
Perl Script - Remove column of data based on column value 2 51
Add additional column to .csv using Perl. 8 143
I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
There are many situations when we need to display the data in sorted order. For example: Student details by name or by rank or by total marks etc. If you are working on data driven based projects then you will use sorting techniques very frequently.…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question