Hi,
In the documentation with your perl, the document perlfunc describes
eval much more concisely and accurately than I could.
There is a difference between
eval("\$ret=\$data\=\~$filter");
and
eval { $ret = $data =~ $filter };
which perlfunc explains.
Note that the second form isn't interpolating a string to get the code.
I think you are assuming that
eval { $a + $b = $c; }
would mean that $c is always the same? This isn't the case. The second
form of eval is pretty much like any other scope contained within {}
(subject to a few caveats described in perlfunc).
On the warnings, I may have misunderstood, but if you don't want
warnings - could you switch them off when you deploy the code?
Regards
Mark
Nelson R. Pardee wrote:
> Mark,
> I don't think I can use the block form, or am I confused? Maybe if I
> change the form slightly I can do it. But the values of the variable do
> change
> eval("\$ret=\$data\=\~$filter");
>
> I suppose I could strip the slashes and any modifiers from $filter and
> rewrite it thus: eval{"\$ret=\$data\=\~/\$filter/\$mods"}
>
> I understand this may be faster, but it's not clear from my
> documentation what it would do differently. Is that what you had in mind?
>
> And- how can I trap the warning? In this case it's coming from an embedded
> $ in my string (which I can look for), but I'm concerned about other
> warnings that I might not anticipat:-) Thanks again for the help!
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs