Bakken, Luke wrote:
> > > Here are two solutions I found:
> > > 
> > > $rec->{"loans:a_$fld" . "[$i]"} = $tmp{$fld} || '';
> > > $rec->{"loans:a_$fld\[$i]"} = $tmp{$fld} || '';
> > > 
> > > Are there any other ways? Just curious.
> > 
> > "loans:a_${fld}[$i]" also works. I like your second version above
> > best. 
> > 
> > $ perl -MO=Deparse,-q -e '"a_${fld}[$i]"'
> > 'a_' . $fld . '[' . $i . ']';
> > 
> > $ perl -MO=Deparse,-q -e '"a_$fld\[$i]"'
> > 'a_' . $fld . '[' . $i . ']';
> 
> Hmm you know that was the first thing I tried, but I always get this
> error, indicating it's still looking for @fld:
> 
> I also have use strict on.
> 
> C:\tmp>perl testadr
> Global symbol "@fld" requires explicit package name at testadr line
> 37. Global symbol "@fld" requires explicit package name at testadr
> line 43. BEGIN not safe after errors--compilation aborted at testadr
> line 48. 

You're right. I guess what I wrote is a no-no.

Writing something like "${fld}foo" is like $fld . "foo"

But the opening square bracket seems to cause problems with strict turned
on. Maybe somebody smarter than me (shouldn't be hard to find!) can explain
further.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to