I enabled forks as follows by using system call to create a new terminal to run each ftp/sftp connection in a seperate perl script. It's able to execute but I am having issues when my parameters(@fields) contain bracket. I am not able to pass parameters which contains bracket.
The brackets are being intercepting by the shell. You have to properly quote shell metacharacters... actually, as there are two shells being invoked (the one used by perl to run your command and the one you are calling explicitly), you will have to double quote your arguments.
If you want to follow that route and need help about quoting I advice you to post a new question.