in reply to system call in Perl

Exchange your double quotes for q( ) and that should do it.

system( q( ls -r1 *BC*.txt | grep -v Liver |awk '{split ($1,name,"."); +\ printf name[1]"\n"}' > BCfile.name" ) );

Of course, you might want to question why you are going to all the trouble to write shell code in perl...

-sauoq
"My two cents aren't worth a dime.";