Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^2: Perl semi-object without a constructor

by Wiggins (Hermit)
on Feb 20, 2013 at 20:14 UTC ( #1019841=note: print w/replies, xml ) Need Help??

in reply to Re: Perl semi-object without a constructor
in thread Perl semi-object without a constructor

I went back and looked at all the subroutines.
2 have $pkg as arg0 (event_loop() & new_server())
7 have $conn as arg0
3 don't take args
1 starts with the line:
shift unless ref($_[0]); # shift if first arg is package name

So maybe the entire package is actually a class.

With 1 dodgy routine:

sub _new_client { my $sock = $main_socket->accept(); my $conn = bless { 'sock' => $sock, 'state' => 'connected' }, $g_pkg; #< different CLASSNAME my $rcvd_notification_proc = &$g_login_proc ($conn, $sock->peerhost(), $sock->peerport()); if ($rcvd_notification_proc) { $conn->{rcvd_notification_proc} = $rcvd_notification_proc; my $callback = sub {_rcv($conn,0)}; set_event_handler ($sock, "read" => $callback); } else { # Login failed $conn->disconnect(); } }

It is always better to have seen your target for yourself, rather than depend upon someone else's description.

Replies are listed 'Best First'.
Re^3: Perl semi-object without a constructor
by dsheroh (Prior) on Feb 21, 2013 at 09:43 UTC
    Common Perl convention is that sub/method names beginning with an underscore are to be treated as private. The reason that sub _new_client is structured differently than the other subs in the package is because it's meant for internal use only and is not a part of the public interface.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2019-10-20 22:03 GMT
Find Nodes?
    Voting Booth?