in reply to File created but blank

Your 2nd open, when you are attempting to launch four child processes (a shell, grep, and 2 cut programs) has several problems. You probably meant to use system, open can be used to run a child process connected to a pipe, but you are using a shell process to redirect output to a file and not attempting to read the pipe in Perl.
Second, you are not doing any error checking. But, importantly, the statement is a poor approach. Perl can doing anything that a shell, grep, and cut will do: use Perl rather than calling a bunch of other programs. It is more efficient, easier to debug, and will progress your skills.