sub RmdirAndLoop ( $ ) { my $Target = $_[0]; # directory to remove # print "Target = <$Target>\n"; print "Pruning <$Target>. This may take a while...\n"; if ( $ftp->rmdir ( "$Target", 1 ) ) { print " $Target deleted successfully\n"; } else { for my $Target2 ( @ { $ftp->ls ( "$Target/*" ) } ) { RmdirAndLoop ( $Target2 ); # < ---- This is line 266 } } print "\n"; }