Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: Here's the offending line of code, HTH

by jand (Friar)
on Jan 21, 2003 at 01:44 UTC ( #228557=note: print w/replies, xml ) Need Help??

in reply to Here's the offending line of code, HTH
in thread ActiveState's PerlApp is causing an odd problem with IO:Socket

I think you may need to use a later version of ActivePerl as well (at least build 628 or later). I believe your problem is related to the overriding of CORE::GLOBAL::require by PerlApp. The require statement has both runtime and compiletime aspects, and in earlier versions the compiletime aspects are suppressed when require has been overriden.

The problem is that the statement

my $sel = new IO::Select $sock;

uses indirect object syntax. Directly above is the require statement:

require IO::Select;

With a non-overridden require, it will create the IO::Select package at compile time and the statement above is compiled as

my $sel = IO::Select->new($sock);

Without the compiletime definition of the IO::Select package, Perl compiles it as

my $sel = new($sock->IO::Select());

because the IO::Socket module had already defined a new() sub at this time.

Another "fix" would be to add a

use IO::Select;

line to the top of your script.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (3)
As of 2022-12-08 05:18 GMT
Find Nodes?
    Voting Booth?

    No recent polls found