my $logged_in = eval { $ftp->login($un, $pw); 1; };
if (! $logged_in){
if ($@ =~ /login incorrect/i){
# do stuff, perhaps keep asking user for un/pw and
# re-attempt login in a loop
}
else {
# might not be a login error...
# handle different exception
}
}