Text or Number
Joshua Goodall
joshua at roughtrade.net
Sun Mar 28 16:19:09 CST 2004
On Mon, Mar 29, 2004 at 06:51:21AM +1000, Sisyphus wrote:
> But normally perl does this "DWIM" stuff for you.
> If I write:
>
> $x = "1";
> $y = $x * 3;
>
> then $y always holds the value 3, not 45.
>
> How does perl's own DWIM handler come to fail for Scott ?
There's no DWIM mechanism for "write this value to a parallel port",
unlike the multiplication operator "*" which supplies an integer
conversion context as necessary.
Which value to output? Ascii '3' or binary 00000011? Bear in mind
that the parallel port can be used as bit-by-bit data acquisition/control
I/O system as well as a character-output device for talking to
printers.
This user confusion is precisely the cause of Scott's enquiry.
Scott, this motivates yet another way: make your controlling class
abstract, and then require the user to explictly request a subclass
that implements the actual desired behaviour. Since it's unlikely
that someone will be working in both the character and the acq/control
paradigms, they can request a concrete class that fits their
requirements.
You can also hide platform-specific implementations behind such a
factory method, giving the illusion of portability.
- J
--
Joshua Goodall "as modern as tomorrow afternoon"
joshua at roughtrade.net - FW109
More information about the Melbourne-pm
mailing list