in reply to Query on Perl system command
It looks like a quoting problem. It seems that you want to interpolate your variable $filename within your quoted string but interpolation does not happen within Perl's single quotes.
There are several possibilities, but one would be to use double quotes, then escape the double quotes and "\n" you are using:
system "echo -e \"$filename.txt\\n$filename.xls\\n\" | phylip";
Also note that, on my system at least, I need the -e option to get backslash escapes to be interpreted.