Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: stringified references

by pg (Canon)
on Dec 04, 2002 at 20:48 UTC ( #217590=note: print w/replies, xml ) Need Help??


in reply to stringified references

The format you expected is still correct, although the document didn't say so, but ..., not just you can be cheated, even UNIVERSAL::isa can be cheated, try this:
use IO::Socket::INET; use strict; my $socket = new IO::Socket::INET(); print $socket, "\n"; print "is INET\n" if UNIVERSAL::isa($socket, "IO::Socket::INET"); print "is Socket\n" if UNIVERSAL::isa($socket, "IO::Socket"); print "is IO\n" if UNIVERSAL::isa($socket, "IO"); print "is GLOB\n" if UNIVERSAL::isa($socket, "GLOB"); print "is HASH\n" if UNIVERSAL::isa($socket, "HASH"); $socket =~ s/GLOB/HASH/; print "after s///\n"; print $socket, "\n"; print "is INET\n" if UNIVERSAL::isa($socket, "IO::Socket::INET"); print "is Socket\n" if UNIVERSAL::isa($socket, "IO::Socket"); print "is IO\n" if UNIVERSAL::isa($socket, "IO"); print "is GLOB\n" if UNIVERSAL::isa($socket, "GLOB"); print "is HASH\n" if UNIVERSAL::isa($socket, "HASH");

Replies are listed 'Best First'.
Re: Re: stringified references
by demerphq (Chancellor) on Dec 05, 2002 at 00:22 UTC
    Umm, I'm not sure I got your point. Heres what I got when I played with your code...
    use IO::Socket::INET; use strict; use overload; use warnings; sub is_blessed { defined($_[0]) && ref($_[0]) && (index(overload::StrVal($_[0]),'=')>=0) && overload::StrVal($_[0])!~/^Regexp=SCALAR/? "blessed" : "not blesse +d"; } my $socket = IO::Socket::INET->new (); print overload::StrVal($socket),"is ",is_blessed($socket)," and\n"; foreach (qw(IO IO::Socket IO::Socket::INET GLOB HASH)) { print "is" .(UNIVERSAL::isa( $socket, $_ )? " a " : " not a ").$_. +"\n" ; } $socket =~ s/GLOB/HASH/; print "after s///\n"; print overload::StrVal($socket),"is ",is_blessed($socket)," and\n"; foreach (qw(IO IO::Socket IO::Socket::INET GLOB HASH)) { print "is" .(UNIVERSAL::isa( $socket, $_ )? " a " : " not a ").$_. +"\n" ; } __END__ IO::Socket::INET=GLOB(0x1ab52f0)is blessed and is not a IO is a IO::Socket is a IO::Socket::INET is a GLOB is not a HASH after s/// IO::Socket::INET=HASH(0x1ab52f0)is not blessed and is not a IO is not a IO::Socket is not a IO::Socket::INET is not a GLOB is not a HASH

    --- demerphq
    my friends call me, usually because I'm late....

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://217590]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2022-08-14 15:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?