perl data structure


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl data structure
# 1  
Old 07-10-2010
Error perl data structure

Hi All,
I want to create a data structure like this
Code:
   $VAR1 = {
            'testsuite' => {
                           'DHCP' => {
                                     'failures' => '0',
                                     'errors' => '0',
                                     'time' => '0.686',
                                     'system-out' => {},
                                     'hostname' => 'atrcx827',
                                     'package' => 'FeatureTest',
                                     'timestamp' => '2010-06-22T18:56:03',
                                     'id' => '0',
                                     'system-err' => {},
                                     'testcase' => {
                                                   'ft_627' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_621' => {
                                                               'time' => '0.388',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_623' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_626' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_622' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_625' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_629' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_624' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             },
                                                   'ft_628' => {
                                                               'time' => '0.01',
                                                               'classname' => 'FeatureTest.DHCP'
                                                             }
                                                 }
                                   },
                           'NTP' => {
                                    'failures' => '0',
                                    'errors' => '0',
                                    'time' => '0.272',
                                    'system-out' => {},
                                    'hostname' => 'atrcx827',
                                    'package' => 'FeatureTest',
                                    'timestamp' => '2010-06-22T18:56:07',
                                    'id' => '1',
                                    'system-err' => {},
                                    'testcase' => {
                                                  'ft_721' => {
                                                              'time' => '0.388',
                                                              'classname' => 'FeatureTest.NTP'
                                                            },
                                                  'ft_722' => {
                                                              'time' => '0.388',
                                                              'classname' => 'FeatureTest.NTP'
                                                            }
                                                }
                                  }
                         }
          };

Now I create a class to initial this structure but it seems that it doesnt work.
Code:
use strict;  
use Scalar::Util;
use Data::Dumper;
use Sys::Hostname;

sub new{
    my $class=shift();
    print ("CLASS=$class\n");
    my $self=();
    $self->{'results'}={};
    $self->{'results'}->{'testsuit'}={};
    #print Dumper($self->{'results'});
    
    my @time=localtime(time);
    my $date=sprintf "%4d-%02d-%02d %02d:%02d:%02d",$time[5]+1900,$time[4]+1,$time[3],$time[2],$time[1],$time[0];
    $self->{'timestamp'}=$date;
    
    $self->{'hostname'}=hostname;
    
    $self->{'package'}=shift();
    $self->{'suitcount'}=0;
    bless $self,$class;
    return $self;
}

sub getResult{
    my ($self)=@_;
    return $self->{'results'};
}

sub checkSuitinResult{
    my ($self,$suit)=@_;
    unless(defined $self->{'resuits'}->{'testsuit'}->{$suit}){
        my %tmp_suit=();
        $tmp_suit{'failures'}=0;
        $tmp_suit{'errors'}=0;
        $tmp_suit{'time'}=0;
        $tmp_suit{'system-out'}={};
        $tmp_suit{'hostname'}=$self->{'hostname'};
        $tmp_suit{'package'}=$self->{'package'};
        $tmp_suit{'timestamp'}=$self->{'timestamp'};
        $tmp_suit{'id'}=$self->{'suitcount'};
        $self->{'suitcount'}++;
        $tmp_suit{'system-err'}={};
        $tmp_suit{'testcase'}={};
        $self->{'resuits'}->{'testsuit'}->{$suit}=\%tmp_suit;
    }    
}

and use this file to invoke the class

Code:
#! /usr/bin/perl -w

use strict;
use Result;
use Data::Dumper;

my $result=Result->new("FeatureTest");
$result->checkSuitinResult('dhcp');
print Dumper($result->getResult());

The result is
Code:
bash-3.00# ./testresult.pl
CLASS=Result
$VAR1 = {
          'testsuit' => {}
        };

what's wrong with this?

Thanks
Damon
# 2  
Old 07-11-2010
have you put or store the package in the paths exist in the @INC matrix so Perl can find it when the package's method been called.



Code:
use Result;

# 3  
Old 07-11-2010
Quote:
Originally Posted by ahmad.diab
have you put or store the package in the paths exist in the @INC matrix so Perl can find it when the package's method been called.



Code:
use Result;

Yes, I think I have.
# 4  
Old 07-11-2010
there are error in writing as per below:

where :-
'resuits' should be 'results' in below code block:-


Code:
sub checkSuitinResult{
    my ($self,$suit)=@_;
    unless(defined $self->{'resuits'}->{'testsuit'}->{$suit}){
        my %tmp_suit=();
        $tmp_suit{'failures'}=0;
        $tmp_suit{'errors'}=0;
        $tmp_suit{'time'}=0;
        $tmp_suit{'system-out'}={};
        $tmp_suit{'hostname'}=$self->{'hostname'};
        $tmp_suit{'package'}=$self->{'package'};
        $tmp_suit{'timestamp'}=$self->{'timestamp'};
        $tmp_suit{'id'}=$self->{'suitcount'};
        $self->{'suitcount'}++;
        $tmp_suit{'system-err'}={};
        $tmp_suit{'testcase'}={};
        $self->{'resuits'}->{'testsuit'}->{$suit}=\%tmp_suit;
    }    
}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

C Data Structure to represent a Sparse Array

Which data structure will be most appropriate to represent a sparse array? (1 Reply)
Discussion started by: rupeshkp728
1 Replies

2. Shell Programming and Scripting

Help with reformat data structure

Input file: bv|111259484|pir||T49736_real_data bv|159484|pir||T9736_data_figure bv|113584|prf|T4736|truth bv|113584|pir||T4736_truth Desired output: bv|111259484|pir|T49736|real_data bv|159484|pir|T9736|data_figure bv|113584|prf|T4736|truth bv|113584|pir|T4736|truth Once the... (8 Replies)
Discussion started by: perl_beginner
8 Replies

3. Shell Programming and Scripting

Do you recognize this data structure?

I am working with an undocumented feature of a software product (BladeLogic). It is returning the below string in response to a query. It is enclosed with square brackets, "records" are separated with commas and "fields" separated with semicolons. My thought was that this might be some basic... (1 Reply)
Discussion started by: dshcs
1 Replies

4. Shell Programming and Scripting

Perl Data Structure - Non unique values

I have the perl data structure and what i need to do is find all values in @{$extractColumns{'2'}{'D'}} which are not there in @{$extractColumns{'2'}{'M'}} but seems like i need to put a flag somewhere and i messed up foreach my $order (keys %extractColumns) { foreach my $value... (2 Replies)
Discussion started by: dinjo_jo
2 Replies

5. Programming

Using General Data Structure Library (GDSL)

Dear All, I would appreciate if some one could please post a few examples using GDSL library. The library provides general data structure operations. I am having confusion using list data structure regarding arguments. Would appreciate your kind response. with regards, Usman (2 Replies)
Discussion started by: usman_minhas
2 Replies

6. Programming

how to get the process data structure through pid?

hello guys, i'm required to modify the process scheduling part of the freebsd kernel as part of our homework. the homework needs us add a new variable to the process data structure, and the priority of the process will be having something to do with the variable. to adjust the variable... (2 Replies)
Discussion started by: billconan
2 Replies

7. Shell Programming and Scripting

tree structure of the data

Hello, I have a file of the following information ( first field parent item, second field child item) PM01 PM02 PM01 PM1A PM02 PM03 PM03 PM04 PM03 PM05 PM03 PM06 PM05 PM10 PM1A PM2A PM2A PM3B PM2A PM3C The output should be like this : PM01 PM02 PM03 PM04 ... (2 Replies)
Discussion started by: ThobiasVakayil
2 Replies

8. Programming

How to implement an on-disk data structure

I have heard about on-disk data structures, but I am trying to understand how to implement it. I want to write a program which is going to make use of a B-Tree which is so huge that whole of it cannot sit in memory. Lets take a simple case of a linked list. Suppose I want to have a linked... (1 Reply)
Discussion started by: the_learner
1 Replies

9. Filesystems, Disks and Memory

inode data structure

the superblock has the offset for inode table. My question is 1) whether it starts relative to the start of the first cylinder group or is it relative to the start of filesystem??? 2)and also which entry corresponds to the root(/) inode?? is it second or third entry??? My questions are... (4 Replies)
Discussion started by: anwerreyaz
4 Replies

10. Programming

what data structure for polinomial

Hello, guys Anyone had experiences to express polynomial using c language. I want to output the polynomial formula after I solve the question. Not to count the value of a polynomial. That means I have to output the polynomial formula to screen. such as: f :=... (0 Replies)
Discussion started by: xli3
0 Replies
Login or Register to Ask a Question