eval "\$$arrayname{\$key} = 1";
*****
while (<>) { eval; print $@; }
*****
# make divide-by-zero non-fatal
eval { $answer = $a / $b; }; warn $@ if $@;

# same thing, but less efficient
eval '$answer = $a / $b'; warn $@ if $@;

# a compile-time error (not trapped)
eval { $answer = };

# a run-time error
eval '$answer =';  # sets $@
*****
eval $x;          # CASE 1
eval "$x";        # CASE 2

eval '$x';        # CASE 3
eval { $x };      # CASE 4

eval "\$$x++";    # CASE 5
$$x++;            # CASE 6
*****
#!/usr/bin/perl
$whatever = shift;

eval <<'EndOfEval';  $start = __LINE__;
   .
   .           # your ad here
   .
EndOfEval

# Cleanup

unlink "/tmp/myfile$$";
$@ && ($@ =~ s/\(eval \d+\) at line (\d+)/$0 .
    " line " . ($1+$start)/e, die $@);
exit 0;
*****
eval $prog . '#' . ++$seq;
