Dear Tom,

> You seem to be blending the concepts of eval and system.

Sorry about the confusing presentation there.  My friend had
actually written something like:

----------------------\/--------BEGIN---------\/----------------------
$string = "system(\"cat $somefile | mail -s \\\"$something\\\" $audience\")";
eval $string;
----------------------/\---------END----------/\----------------------

Yeah, including all the backslashes.  :-)

I asked him to re-write it as:

----------------------\/--------BEGIN---------\/----------------------
system("cat $somefile | mail -s '$something' $audience");
----------------------/\---------END----------/\----------------------

That is why my advice to him included references to system().


> Your comments about doing "something that has life beyond the process 
> itself" and "incomplete run" seem a bit muddled and not consistent with 
> how eval behaves. Yes, as another poster pointed out, if you don't check 
> $@ after an eval, an error (compilation or otherwise) can go unnoticed, 
> if that's what you mean.

That is just part of what I meant.  By using an unnecessary
eval-STRING, he is postponing syntax errors to run-time.  So some
detrimental actions may get taken before the syntax error is hit.
Without the eval, the same error would be detected at compile-time, and
the hypothetical actions would not be taken at all.  As they say,
"extinction is forever".  Some actions cannot be undone even if you
test for [EMAIL PROTECTED]

You will have seen Uri's response to you about eval-BLOCK.  eval-BLOCK
is not really an eval at all.

peace,                                     || What can one hour achieve?
--{kr.pA}                                  || http://www.workanhour.com/
--
Kid, n.: A noise with dirt on it.
 
_______________________________________________
Boston-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to