Net::FTP=GLOB(0x919f390)<<< 150 Opening ASCII mode data connection for file list
Net::FTP=GLOB(0x919f390)<<< 226 Transfer complete
to_kill is /images/brick5/jm2.jpg
Net::FTP=GLOB(0x919f390)>>> DELE /images/brick5/jm2.jpg
Net::FTP=GLOB(0x919f390)<<< 250 DELE command successful
to_kill is /images/brick5/photo 1.JPG
Net::FTP=GLOB(0x919f390)>>> DELE /images/brick5/photo 1.JPG
Net::FTP=GLOB(0x919f390)<<< 250 DELE command successful
to_kill is /images/brick5/photo 2.JPG
Net::FTP=GLOB(0x919f390)>>> DELE /images/brick5/photo 2.JPG
Net::FTP=GLOB(0x919f390)<<< 250 DELE command successful
to_kill is /images/brick5/s.jpg
Net::FTP=GLOB(0x919f390)>>> DELE /images/brick5/s.jpg
Net::FTP=GLOB(0x919f390)<<< 250 DELE command successful
Net::FTP=GLOB(0x919f390)>>> RMD /images/brick5
Net::FTP=GLOB(0x919f390)<<< 250 RMD command successful
string is /css/brick1.css
Net::FTP=GLOB(0x919f390)>>> DELE /css/brick1.css
Net::FTP=GLOB(0x919f390)<<< 250 DELE command successful
killed were brick1.html brick2.html brick3.html brick4.html brick5.html /images/brick1/jm2.jpg /images/brick1/photo 1.JPG /images/brick1/photo 2.JPG /images/brick1/s.jpg brick1 /images/brick2/jm2.jpg /images/brick2/photo 1.JPG /images/brick2/photo 2.JPG /images/brick2/s.jpg brick2 /images/brick3/jm2.jpg /images/brick3/photo 1.JPG /images/brick3/photo 2.JPG /images/brick3/s.jpg brick3 /images/brick4/jm2.jpg /images/brick4/photo 1.JPG /images/brick4/photo 2.JPG /images/brick4/s.jpg brick4 /images/brick5/jm2.jpg /images/brick5/photo 1.JPG /images/brick5/photo 2.JPG /images/brick5/s.jpg brick5 /css/brick1.css
$
####
#!/usr/bin/perl -w
use strict;
use 5.010;
use lib "template_stuff";
use html2;
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 $answer eq '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 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;
}