Perl : reading data from dumper variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl : reading data from dumper variable
# 1  
Old 10-28-2016
Perl : reading data from dumper variable

Hi team,

# PERL
I have Dumper variable in perl and containing the below data and trying to fetch value and name from the reference variable.

Code:
$VAR1 = {
          'retainSysIds' => 'true',
          'variables' => [
                         {
                           'variable' => [
                                         {
                                           'value' => ['server1'],
                                           'name' => ['db'],
                                         },
                                         {
                                           'value' => ['server2'],
                                           'name' => ['application'],
                                          }
                           }
                             ]


Below is my Perl code and couldn't able to read any data.

Code:
     foreach $element ( @{$xml_ref->{variables}}){
			
		#print %$element),"\n";
		foreach my $single ( keys(%{$element}))
		{
			print "testing :",%{$element} ;
		}
     }

Could anyone please help me in this regard?
# 2  
Old 10-28-2016
Is this the module Data::Dumper?

If so, you might do better with:-
Code:
#!/usr/bin/perl
use Data::Dumper ;
:
:       # Whatever else you need to do
:
:
print Dumper($variable) ;

is this what you are after, or have I missed the point?




Robin

Last edited by Don Cragun; 10-28-2016 at 04:48 PM.. Reason: Get rid of accidental smiley.
This User Gave Thanks to rbatte1 For This Post:
# 3  
Old 10-28-2016
Thank you Robin.

The data that I pasted is the output of Data dumper itself.
In the below code
Code:
$xml_ref

variable contains that Data dumper output and I am trying to read that data through foreach to display value and name info but couldn't.

Please let me know if you question is not so clear.


Code:
     foreach $element ( @{$xml_ref->{variables}}){
			
		#print %$element),"\n";
		foreach my $single ( keys(%{$element}))
		{
			print "testing :",%{$element} ;
		}
     }

# 4  
Old 10-30-2016
Quote:
Originally Posted by giridhar276
Thank you Robin.

The data that I pasted is the output of Data dumper itself.
In the below code
Code:
$xml_ref

variable contains that Data dumper output and I am trying to read that data through foreach to display value and name info but couldn't.

Please let me know if you question is not so clear.


Code:
     foreach $element ( @{$xml_ref->{variables}}){
			
		#print %$element),"\n";
		foreach my $single ( keys(%{$element}))
		{
			print "testing :",%{$element} ;
		}
     }

Please, give it a try:

Code:
for my $element (@{$xml_ref->{'variables'}}) {
    for my $single (@{$element->{'variable'}}) {
        print "@{$single->{'value'}}\n";
        print "@{$single->{'name'}}\n";
    }
}

# 5  
Old 10-30-2016
Hi ,

According to your dumper output , i think xmlref is hashreference to start with.

You can consider below one as a starting point depends on your xmlref.

Code:
#!/usr/bin/perl -w
use Data::Dumper;

my $xmlref = {
    'retainSysIds' => 'true',
    'variables'    => [
        {
            'variable1' => [
                {
                    'value' => ['server1'],
                    'name'  => ['db'],
                },
                {
                    'value' => ['server2'],
                    'name'  => ['application'],
                }
            ],
            'variable2' => "src2",
        }
    ],
    'temp' => 'xyz',
};

#print Dumper($xmlref);
foreach my $okey ( keys %$xmlref ) {
    print "Mainkey: $okey: value is: ${$xmlref}{$okey}\n";
    if ( $okey eq "variables" ) {
        print "first level key 'variables' matching\n";
        foreach my $hash ( @{ $$xmlref{$okey} } ) {
            if ( exists $hash->{'variable1'} ) {
                print "second level key 'variable1' exists\n";
                foreach my $inarr ( @{ $hash->{'variable1'} } ) {
                    print "** value: $inarr->{'value'}[0] \n";
                    print "** name: $inarr->{'name'}[0] \n";
                }
            }
        }
    }
}

Gives following output:
Quote:
Mainkey: temp: value is: xyz
Mainkey: retainSysIds: value is: true
Mainkey: variables: value is: ARRAY(0x10aee60)
first level key 'variables' matching
second level key 'variable1' exists
** value: server1
** name: db
** value: server2
** name: application
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error while reading variable from a file in perl script

I have a file abc.ini and declared many variables in that file, one of the variable(DBname) value I am trying to read in my perl script but getting error. File abc.ini content # database name DBname =UATBOX my $ex_stat; my $cmd_output; $ex_stat = "\Qawk '/^DBname/{print... (2 Replies)
Discussion started by: Devesh5683
2 Replies

2. Shell Programming and Scripting

Perl :: reading values from Data Dumper reference in Perl

Hi all, I have written a perl code and stored the data into Data structure using Data::Dumper module. But not sure how to retreive the data from the Data::Dumper. Eg. Based on the key value( Here CRYPTO-6-IKMP_MODE_FAILURE I should be able to access the internal hash elements(keys) ... (1 Reply)
Discussion started by: scriptscript
1 Replies

3. Shell Programming and Scripting

Perl Script for reading table format data from file.

Hi, i need a perl script which reads the file, content is given below. and output in new file. TARGET DRIVE IO1 IO2 IO3 IO4 IO5 ------------ --------- --------- --------- --------- --------- 0a.1.8 266 236 ... (3 Replies)
Discussion started by: asak
3 Replies

4. Shell Programming and Scripting

Data extraction in perl variable

HI, i have variable in perl like below $tmp="/home/sai/automation/work/TFP_GN.txt" it can conatain any path its filled from config file. now i want extarct the path upto this /home/sai/automation/work/ and put it in another variable say... (4 Replies)
Discussion started by: raghavendra.nsn
4 Replies

5. Shell Programming and Scripting

log data::dumper output to file

I am new to Perl and just started using the data::dumper. i have been unable to figure out how to take the output that comes from the data::dumper and redirect it to a file. I tried this.... sub postEvent { my $this = shift; # print "Passed parameters, " . Dumper(\@_) .... (3 Replies)
Discussion started by: LRoberts
3 Replies

6. Shell Programming and Scripting

Perl: Reading data from other file

Hi, I am writting some perl scripts for daily backup process. In which I want to pass some data/referance from another txt file. Text file contains only one column and multiple rows. I want to pass this data to variables of another perl script. e.g. Refdoc.txt file contains data as: perl1... (3 Replies)
Discussion started by: n.dba
3 Replies

7. Shell Programming and Scripting

Reading data from file and assigning to variable

I was trying to store the number of lines in a file and store it in a file.after that i want to store the information in a file to a variable which is further used in the if loop to check certain condition. #!/bin/bash cat <file> | wc -l > count.txt x="$count.txt"; i=10; if ; then cat... (10 Replies)
Discussion started by: sudhakaryadav
10 Replies

8. Shell Programming and Scripting

PERL: reading 2 column data into Hash file

I am trying to read in a 2 column data file into Perl Hash array index. Here is my code. #!/usr/bin/perl -w use strict; use warnings; my $file = "file_a"; my @line = (); my $index = 0; my %ind_file = (); open(FILE, $file) or die($!); while(<FILE>) { chomp($_); if ($_ eq '') { ... (1 Reply)
Discussion started by: subhap
1 Replies

9. Shell Programming and Scripting

perl not reading my variable

I'm trying to make changes in a file using the following bash script: #!/bin/bash MYHOME=`echo $HOME` README=$MYHOME"/environment" IAM=`whoami` CHANGEPATHLIST="TALOG TACONFIG TAINFO TAWORK TMPSPACE" for var in $CHANGEPATHLIST do perl -pi -e 's/sacuser1/$IAM/ if m/$var/' $README... (3 Replies)
Discussion started by: yoonixq4u
3 Replies

10. Shell Programming and Scripting

Reading data into muti-dimentional array - in perl

Just want to learn how these are read into array but I don't seem to get it right what do I go wrong? Below is the sample Thanks input 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 #!/usr/bin/perl open (InFILE,"input"); while (<InFILE>) { @ar = split ; (5 Replies)
Discussion started by: zap
5 Replies
Login or Register to Ask a Question