On a side note, you could use Net::Telnet::Cisco to greatly simplify your script with things like login() and a Cisco-like-prompt string so don't need any of the waitfor() commands.
#!perl
use strict;
use warnings;
use Net::Telnet::Cisco;
my $t = Net::Telnet::Cisco->new(
Host => "x.x.x.x",
dump_log => "file_dump",
output_log => "file_out"
) or die "no connection\n";
$t->login(
Name => "username_goes_here",
Password => "password_goes_here"
) or die "no login\n";
$t->enable("enable_pass_goes_here") or die "no enable\n";
$t->cmd('terminal length 0');
my @showrun = $t->cmd('show run');
print $_ for ( @showrun );
print "\nmoving to next statement\n";