In Linux, (at least all the flavors I know), drives connected through a usb port are owned by root and cannot be changed
This is incorrect. Take a look at the user option in the mount man page. You can make a drive user-mountable by putting something like the following into /etc/fstab:
/dev/sdc1 /mnt/external ext3 user,noauto 0 0
This will allow any user to mount the partition /dev/sdc1 under /mnt/external. The user who mounts the device will also own the mountpoint (i.e. directory).
Not that this has anything to do with Perl, but it seemed pertinent information :-)