#!/usr/bin/perl -w use strict; use 5.010; use lib "template_stuff"; use html2; use Net::FTP; say "What keyword would you like to delete?"; my $word = <>; chomp $word; say "Delete everything associated with $word? (Y for yes)"; my $answer = <>; chomp $answer; die unless ( $answer eq 'Y' or 'y' ); # main data structure my %vars = ( word => $word, page => 'pages', image => 'images', css => 'css', ); my $rvars = \%vars; my $rftp = get_ftp_object(); my $rfiles = get_html_filenames( $rftp, $rvars ); my $rptr = kill_files( $rftp, $rvars, $rfiles ); my @killed = @$rptr; say "killed were @killed "; __END__ #### 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 directories for my $dir (@files) { my $obj = dir( '', $vars{image}, $dir ); my $string = $obj->stringify; say "string is $string"; my $return = $ftp->rmdir($string,1); 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, $html ); } return \@killed_files; } #### Net::FTP=GLOB(0x92dc200)>>> DELE /images/potato1/. Net::FTP=GLOB(0x92dc200)<<< 550 /images/potato1/.: Is a directory Net::FTP=GLOB(0x92dc200)>>> RMD /images/potato1/. Net::FTP=GLOB(0x92dc200)<<< 550 /images/potato1/.: Directory not empty