I apologize for not including a previous message thread -- I
fumble-fingered myself out of all the relevant ones....

Still, I'd just like to cast my tiny vote regarding inferences.

I'd like to be able to write classes that can take advantage of
screaming speed, and types contribute.

I'd like to be able to tell my main script that it is required to pass
exact types, so that it gets those advantages. (I'd like something like
"use strict;" without specifying "strict what" to default to "strict
everything".)

I'd still like to be able to use my module in quick one-off's without
having it break and die if I just pass it whatever default variable I
can manage not to declare.

Wouldn't I be able to do that by writing my module with something like
  
  multi foo (Int $i)    {...}
  multi foo (Scalar $s) {...}

???

Yes, I realize most people don't want to write seven versions of every
sub; but most of the time, my module is either going to be generic
enough that I'm not really as interested in the screaming end of speed,
or specific enough that I don't expect to use it for many one-off's, or
worth a little extra code.

Still, as a best-case, I'd like for the strict()-ness of my main
program to drive the determinance. If it's a slopjob quickie, I don't
*CARE* about greatspeed. Just DWIM and gimme what I want. If I want
fast code it's worth being careful, so I'll use strict and expect it to
gripe and expire if I didn't do something quite right.

So, my vote is, do the run-time checking if not strict; restrict me to
compile-time compliance under the strict pragma.

To be honest, I'd also kinda like to see a coerce-it-if-you-can
behavior, but I'd rather have that as a pragma as well. If it's worth
all the extra work to find an appropriate coersion, it's worth a few
extra keystrokes..... but I could live without all that quite happily.

Am I off base?

__________________________________________________
Do you Yahoo!?
Yahoo! Web Hosting - establish your business online
http://webhosting.yahoo.com

Reply via email to