Here's a bunch of points that sprung to mind from looking over the code
- Lower-case package names indicate pragmata, so your package might be better named MyFTP
- You've got the cargo-cult ref($proto) || $proto which, like all code, you shouldn't use unless you know what it it's doing (see. this node for some heavy discussion on the matter)
- There's an awful lot going on in your constructor which should probably be fielded off to an initialisation metehod
- While I realise you've left out comments for a reason it would be very much more perlish to change the comments at the top of the source into POD :)
- In your put(), get() and delete() methods you should be returning the status of the equivalent Net::FTP call
- You could cut down on duplicate code by getting rid of the double bare blocks in some of the methods as they currently don't serve a great deal of purpose
- The method grep_size() is a package level sub, so it's a good idea to move it into the same code space (unless you want to use Sub::Lexical ;)
- And one more minor point - your lines are positively mahoosive. It'd be nice if they were nearer the 80-char 'standard', but different keystrokes for different folks I guess
Of course perl is all about TIMTOWTDI and if it ain't broke don't fix it. But if you're serious about getting OO in perl down then I'd recommend checking out other OO languages, not only will you get a feeling for how OO works you'll also appreciate the freedom you get from perl's OO system.
HTH
_________
broquaint