#!/usr/bin/perl -w use strict; package IO::Socket::WhatEver; use IO::Socket::INET; use base "IO::Socket::INET"; sub connect { print "doing my own stuff in connect()...\n"; my $sock = shift; return $sock->SUPER::connect(@_); } package main; my $mysock = IO::Socket::WhatEver->new( PeerAddr => 'perlmonks.org', PeerPort => 'http(80)', Proto => 'tcp', ); # ...