sub upload { use strict; use warnings; use 5.010; use Net::FTP; use Path::Class; my ($rvars, $rftp) = @_; my %vars = %$rvars; # prelims with server...see if we're able to do anything $rftp->cwd("/pages/eh5v.files") or warn "cwd failed in main $!\n"; my $rlist = $rftp->ls(); say "remote list is @$rlist"; $rftp->binary or warn "binary failed$!\n"; # filter for filetypes my @filetypes = qw/jpg jpeg png ogv mp4 m4v webm/; my $pattern = join '|', map "($_)", @filetypes; opendir my $eh, $vars{"to_vids"} or warn "can't open vids $!\n"; while (defined ($_ = readdir($eh))){ next if m/~$/; next if -d; next unless m/($pattern)/i; my $full_path = file($vars{"to_vids"}, $_); my $string_path = $full_path->stringify; my $size_local = -s $string_path; say "value for $_ is $size_local"; #find size on server my $size_remote = $rftp->size($_) or warn "size query failed $! for $_\n"; say "size remote for $_ is $size_remote"; ## control for upload cases if (!defined($size_remote)) { say "Upload $_" }; if ($size_remote eq $size_local) { say "Sizes equal with $_. Overwrite? Default=n" } else { say "Sizes different with $_. Overwrite? Default=y" }; } closedir $eh; return $rftp; }