use strict;
my $string = 'field1,int,10#field2,string,abc';
my @[EMAIL PROTECTED]
= split /#/,$string;
my @[EMAIL PROTECTED]
no strict 'refs';
for (@[EMAIL PROTECTED]
) {
my @[EMAIL PROTECTED]
= split /,/;
push @[EMAIL PROTECTED]
$tmp[0];
${$tmp[0]} = $tmp[2];
}
for (@[EMAIL PROTECTED]
) {
print $_, ": ", ${$_}, "\n";
}
__END__
this will solve your problem, but it uses symbolic reference whose
use, I think, is discouraged.
A better solution is to use hash:
use strict;
my $string = 'field1,int,10#field2,string,abc';
my @[EMAIL PROTECTED]
= split /#/,$string;
my %vars;
for (@[EMAIL PROTECTED]
) {
my @[EMAIL PROTECTED]
= split /,/;
$vars{$tmp[0]} = $tmp[2];
}
use Data::Dumper;
print Dumper \%vars;
__END__
On Tue, Apr 22, 2008 at 4:08 PM, Ravi Malghan <rmalghan@[EMAIL PROTECTED]
> wrote:
> Hi: I have a string with a number of variable name, type and value
pairs. I want to split the field and build my variables. Below is an
example
>
> $string = "field1,int,10#field2,string,abc";
> @[EMAIL PROTECTED]
= split(/#/,$string);
>
> I want to get two variables from the string, equivalent to the below
statements
> $field1=10;
> $field2="abc";
>
> TIA.
> Ravi
>
>
>
>
____________________________________________________________________________________
> Be a better friend, newshound, and
> know-it-all with Yahoo! Mobile. Try it now.
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
>
> --
> To unsubscribe, e-mail: beginners-unsubscribe@[EMAIL PROTECTED]
> For additional commands, e-mail: beginners-help@[EMAIL PROTECTED]
> http://learn.perl.org/
>
>
>


|