On 2/21/07, Sumit Shah <[EMAIL PROTECTED]> wrote:

Hello All,

I have a string like: 'a = 1; b = 2; c = 3; d = 4'

Whats the best way to parse it so that I can get a value for c, which is
3? I have used the hash approach. But, I was wondering if there is a
faster way to do it in Perl.


Well, from a somewhat-beginners standpoint, the following worked for me:

#####  Begin Code #####

#!/usr/bin/perl -w

use strict;

my $i;
my $values;
my @values2;
my %valuesHash;
my $hashKeys;
my $keys;

$values = "a=1;b=2;c=3;d=4";
@values2 = split(/;/, $values);

for ($i=0; $i <= $#values2; $i++)
{
       my $index;

       foreach $index ($values2[$i])
       {
               $index =~ m/^(\w)\=(\d)$/;
               $valuesHash{$1} = "$2";
       }
}

print ("$valuesHash{c} \n");

##### End Code #####

I know, its a little much, but TIMTOWTDI, and this is how I ended up doing
it.  It uses a hash as you said you had tried.  Like others, I don't see why
you say its slow though.

Regards,

jlk

Reply via email to