Thanks all.
 
I tried below it works:
 
foreach $line (@arr1){
 foreach (@arr2) {
 chomp($_);
 @arr3 = split(/ /,$_);
 $mystringvar = eval "qq{$line}";             <--------------this suggestion 
came from web search.
 print $mystringvar;
 }
}

i got the key line in this code from web. thx to all coders out there.

From: Shlomi Fish <shlo...@shlomifish.org>
To: Rajeev Prasad <rp.ne...@yahoo.com>
Cc: Perl Beginners <beginners@perl.org>
Sent: Wednesday, August 17, 2011 10:54 AM
Subject: Re: why si this code not working (variable substitution)

Hi Rajeev,

On Tue, 16 Aug 2011 17:38:16 -0700 (PDT)
Rajeev Prasad <rp.ne...@yahoo.com> wrote:

>  
>  
> foreach $str1 (@arr1){
>  foreach (@arr2) {
>  @arr3 = split(/ /,"$_");
>  print "array = @arr3  element0 = $arr3[0] element1 = $arr3[1]";   #this
> is just to check, it showing values 0 and 1 as correctly assigned 
> print "$str1"; 

That's your mistake. Perl does not have double-interpolation (which may
be considered a security vulnerability.). To overcome this in your case, you
can use this:

$str1 =~ s/\b\$arr3\[(\d+)\]\b/$arr3[$1]/ge; # Untested.

If you're looking for something better, then look at the various options in:

http://perl-begin.org/uses/text-generation/

A few comments on your code:

1. Use "strict" and "warnings".

2. Always do «foreach my $str1 (@arr1)» and limit the scope of the variables
using "my".

3. Don't iterate using $_. It's very easy to devastate and pollute it.

4. Don't say «"$foo"» instead of «$foo», unless $foo is an object that needs to
be stringified (which is probably not the case).

5. See http://perl-begin.org/tutorials/bad-elements/ for more advice.

Regards,

    Shlomi Fish

-- 
-----------------------------------------------------------------
Shlomi Fish      http://www.shlomifish.org/
Understand what Open Source is - http://shlom.in/oss-fs

* Backward compatibility is your worst enemy.
* Backward compatibility is your users’ best friend.

Please reply to list if it's a mailing list post - http://shlom.in/reply .

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/

Reply via email to