From the Net::Telnet perldoc:
login - perform standard login
$ok = $obj->login($username, $password);
$ok = $obj->login(Name => $username,
Password => $password,
Errmode => $mode,
Prompt => $match,
Timeout => $secs,);
This method performs a standard login by waiting for a login prompt
and responding with *$username*, then waiting for the password
prompt and responding with *$password*, and then waiting for the
command interpreter prompt. If any of those prompts sent by the
remote side don't match what's expected, this method will time-out,
unless timeout is turned off.
What is the login prompt on the Dell switch versus the Cisco router? I'm betting that they are different and you'll need to set 'prompt' in the login() method.