Net::FTP can do this, is has a "quot"
method to send commands that it doesn't have
specific support for:
in reply to use of quote within ftp
my $ftp = Net::FTP->new('ftp.rge.com');
print "[$okay] [$code] [$message]\n";
Some of the methods come from Net::Cmd, which Net::FTP is derived from. See the docs for both.
$ perl tester
  [The following commands are recognized (* =>'s unimplemented
USER PORT STOR MSAM* RNTO* NLST MKD* CDUP
PASS PASV APPE* MRSQ* ABOR SITE XMKD* XCUP
ACCT* TYPE MLFL* MRCP* DELE* SYST RMD* STOU*
SMNT* STRU MAIL* ALLO* CWD STAT XRMD* SIZE
REIN* MODE MSND* REST XCWD HELP PWD MDTM
QUIT RETR MSOM* RNFR* LIST NOOP XPWD
Direct comments to firstname.lastname@example.org.