{ package Fake; sub present { my $class = shift ; print $class->head, "\n"; } sub ack { my $class = shift; print $class->ok,"\n"; } sub rst { my $class = shift; print $class->quit,"\n"; } } { package Ssh; @ISA = qw{Fake}; sub head { my @fake = ("SSH-2.0-OpenSSH_3.8.1p1","SSH-2.0-OpenSSH_3.7p1","SSH-2.0-OpenSSH_3.5p1"); $size = @fake; $rand = 0; $rand = int(rand $size); return $fake[$rand]; } sub quit {return "Protocol mismatch."} } #### bind($port, 'Ssh'); sub bind ( $$){ my $port = shift; my $obj =shift ...... }