how? in a word, dangerously. make sure the script you do this with is running with taint checking enabled (although it may even be turned on automatically with the use of a setuid script, i would do it explicitly just in case). and take extra care not to let the user do anything they shouldn't.
read 'perldoc perlsec' and 'info chmod'. what you'll do is set the setuid bits of the script so that the kernel sees the script as being a different user than it actually is (in this case, either as the owner of the file in question or as root). from there, you can do all the things you need it to.
depending on the kernel version and OS you're running with, you may have to do some trickery to get this to work - this is explained in 'perldoc perlsec'. "If you think you're too small to make a difference, try spending a night in a closed tent with a mosquito."