use strict; my $string = 'field1,int,10#field2,string,abc'; my @values = split /#/,$string;
my @vars; no strict 'refs'; for (@values) { my @tmp = split /,/; push @vars, $tmp[0]; ${$tmp[0]} = $tmp[2]; } for (@vars) { 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 @values = split /#/,$string; my %vars; for (@values) { my @tmp = split /,/; $vars{$tmp[0]} = $tmp[2]; } use Data::Dumper; print Dumper \%vars; __END__ On Tue, Apr 22, 2008 at 4:08 PM, Ravi Malghan <[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"; > @values = 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: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > http://learn.perl.org/ > > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/