in reply to Accessing data present in a text file with references...

Data::Dumper has nothing to do with your problem.

Have a look at the following:

use strict; use warnings; my %data; while (<DATA>) { my ($key, $value) = split /\s*=\s*/; if (m/["']([^'"]+)/) { $data{$key} = $1; } } for my $key (keys %data) { print "$key = $data{$key}\n"; } __DATA__ name = "varun" ip='9.12.23.222' #including the irregular spaces
The data are stored in a hash with as keys the word(s) before the = sign and value everything between the single or double quotes to the right of the equal-sign.

If you really want to access your data as $data->name rather than as $data{'name'} then have a look at perlboot. Note that in this case the arrow operator -> is not used to dereference references here but as a method invocator.

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

Replies are listed 'Best First'.
Re^2: Accessing data present in a text file with references...
by VGR (Acolyte) on Feb 14, 2010 at 20:57 UTC
    cool... thanks man....
    could u explain this part a bit....
    my ($key, $value) = split /\s*=\s*/; if (m/["']([^'"]+)/) {
    thanks for this and the link man
    ++ when does one use data::dumper?
      The while loop puts each line in $_ which is some sort of universal default variable.

      The split splits the string in $_ on the following pattern: "zero or more spaces; equal sign; zero or more spaces" and puts the results of this splitting in the variables $key and $value (actually $value is not used in my script, but I left it in otherwise you might wonder where the second part of the split went to).

      m/["']([^'"]+)/ is a regular expression match and it (also) does some pattern matching, again on the contents of the $_ variable. It tries to match the following pattern: "one single or one double quote; one or more times anything but a single or double quote". The "one or more times anything but a single or double quote" pattern is captured (see the parentheses round the [^'"]?) into the $1 variable. If the match succeeds, we store the contents of $1 into the %data hash keyed by $key.

      CountZero

      A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James