use constant MAXLEN => 1500; ..... my $mesg'; my $buff; while(my $read = $self->{csocket}->recv($buff, MAXLEN)) { $mesg.= $buff; last if( $read < MAXLEN ); }