From: "Uri Guttman" <u...@stemsystems.com> > >>>>> "JK" == Jenda Krynicky <je...@krynicky.cz> writes: > > JK> From: "Joseph L. Casale" <jcas...@activenetwerx.com> > >> Inside a here doc, how can I force an expression to be evaluated > >> such as localtime: > > here docs are just a different form of string so any technique which > works in quoted strings will work in here docs. basic here docs are > double quoted so they will interpolate scalars and arrays. > > JK> use Interpolation eval => 'eval'; > > JK> print <<"END"; > > JK> $eval{localtime time} > JK> Foo > JK> Bar > > JK> END > > i would say to just use a temporary scalar variable. there is no shame > in doing this and it is simpler than using the Interpolation module > which is doing tied things and calling eval (which is dangerous).
Tie() yes, eval"" no. Neither the fact I called the hash eval, nor that I told it to use the builtin interpolation named eval means there is a string eval involved. See the docs online, there are quite a few more builtins and you can create your own interpolation. Eg. for formatting: use Interpolation d => 'commify'; my $total = 54858*745; print <<"END"; blah blah blah $d{$total} blah blah END Jenda ===== je...@krynicky.cz === http://Jenda.Krynicky.cz ===== When it comes to wine, women and song, wizards are allowed to get drunk and croon as much as they like. -- Terry Pratchett in Sourcery -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/