eval { my $ftp = Net::FTP->new(...) or die "Can't connect: $@\n"; $ftp->login(...) or die "failed to login:".$ftp->message; $ftp->cwd(...) or die "failed to chdir:".$ftp->message; ... }; warn $@ if $@; # or whatever