#!/usr/bin/perl -w use strict; use LWP::Simple; $|=1; my $file = shift; my $url = shift; my $len = shift; $len = defined($len) ? $len : 65; open(FILE, $file) or die "Error opening $file: $!"; my $size = -s $file; my $curr = ''; my $pos = 0; print "Transferring\n"; while ($pos < $size) { my $str = ''; for my $n (1..$len) { last unless read(FILE, $curr, 1); $str .= '%'.rexhex(ord($curr)); } get($url.$str); print "."; $pos += $len; $str = ''; } print "\ndone\n"; close(FILE); sub rexhex { my($result,$dec,@hexdigs) =('',($_[0]*16),0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'); $result = $hexdigs[($dec%16)].$result while($dec = int($dec/16)); $result = length($result) == 1 ? '0'.$result : $result; return '00' if $_[0] == 0; return $result; }