On Thu, Feb 19, 2004 at 12:10:18PM -0500, Joey Hess wrote:
> > Now try the same thing in Perl.
>
> $f=create_a_file($name);
> eval {
> do_something_insanely_complicated($f);
> };
> if ($@) {
> unlink $name;
> die $@;
> }
<rant>
ACK! What's with all the $@ stuff?! This is my biggest pet peeve with
Perl. Syntactic sugar. Perhaps to a Perl programmer, this makes sense.
Because I have a background in shell programming, I interpret "$@" to
mean "arguments $1...$N". Obviously wrong.
[Looks up perl syntactic sugar reference manualorama 'perldoc perlcheat']
"$@ eval error"
Ick. Almost as bad as $_.
</rant>
> Of course this is rare, since Perl code that is ill-behaved enough to
> throw an exception is rare, so it's more standard Perl idiom to write:
>
> do_something_insanely_complicated(create_a_file($name)) or unlink($name);
OK. This makes sense. No syntactic sugar involved. Clean, precise.
If all Perl were like this, I'd be much happier using it.
--
Chad Walstrom <chewie@wookimus.net> http://www.wookimus.net/
assert(expired(knowledge)); /* core dump */
Attachment:
signature.asc
Description: Digital signature