in reply to Re: Re^2: (nrd) Putting file contents into a scalar
in thread Putting file contents into a scalar
And the additional benefit to be able to test for the type of a scalar which happens to be passed to me, by checking for ref $fh eq 'IO::File'.Please don't do that. Your code is fragile. It will break when I pass an object that subclasses IO::File but acts in every way like an IO::File.
Instead, write your code so that the class doesn't matter. Use the polymorphism as it was intended. If you are unsure if $object_x can handle a particular method call, then use UNIVERSAL::can against it, or put it in an eval block to trap the potential error.
The use of ref in ordinary code should be limited to determining whether something is a reference or not (such as whether the first parameter for a method call is a class or instance). Any explicit comparison will break subclassing. Too much "navel contemplation" is a bad thing in robust code.
-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Say no to ref $thing eq "Expected::Type"
by Felonious (Chaplain) on Oct 29, 2002 at 14:44 UTC | |
by merlyn (Sage) on Oct 29, 2002 at 14:47 UTC | |
by rir (Vicar) on Oct 29, 2002 at 19:23 UTC | |
by merlyn (Sage) on Oct 29, 2002 at 19:34 UTC | |
by rir (Vicar) on Oct 30, 2002 at 05:25 UTC | |
|