sub kill_files { use Net::FTP; use 5.010; use Path::Class; my ( $ftp, $rvars, $rfiles ) = @_; my %vars = %$rvars; my @files = @$rfiles; my @killed_files; # kill html files for my $html (@files) { my $obj = file( '', $vars{page}, $html ); my $string = $obj->stringify; say "string is $string"; my $return = $ftp->delete($string); if ($return) { push( @killed_files, $html ); } } # chop off ending foreach (@files) { $_ =~ s/\.html//; } say "now files are @files"; # kill image files and directories for my $dir (@files) { my $obj = dir( '', $vars{image}, $dir ); my $path = $obj->stringify; say "path is $path"; $ftp->cwd($path) or warn "Cannot change working directory ", $ftp->message; my @remote_files = $ftp->ls(); for my $file (@remote_files) { next if $file eq '.' or $file eq '..'; my $to_kill = file( $path, $file ); say "to_kill is $to_kill"; my $return = $ftp->delete($to_kill); if ($return) { push( @killed_files, $to_kill ); } } my $return = $ftp->rmdir($path); if ($return) { push( @killed_files, $dir ); } } # kill css file my $css_obj = file( '', $vars{css}, $vars{word} . '1.css' ); my $string = $css_obj->stringify; say "string is $string"; my $return = $ftp->delete($string); if ($return) { push( @killed_files, $string ); } return \@killed_files; }