One simple way to start more than one program simultaneously (on linux) is to use the shell to execute them in the background. I.e.
system("program1 &");
system("program2 &");
would run both programs concurrently, the last one wouldn't even need to run in the background. Programs in the background should not do any screen IO because they are detached from the terminal screen. But you can redirect output to files or /dev/null if that output is uniteresting
Another possibility is to use open with a pipe, i.e. open($f,"-|","program1"); which would enable you to get further input over STDIN to the program.
A third possibility is to use fork to do the (implicit) forking done by the previous methods yourself. And probably the very best possibility is to let a module like Parallel::ForkManager handle most of that work.