in reply to uncaught exception

You have unquoted double quotes in your command. I recommend using the qq{} operator (if variable interpolation is really what you want):

$temp = qq{grep "synopsys translate_" *.v | awk -F ":" '{print $1}' | +uniq}

but note that $1 will be interpolated by Perl. If you don't want that either, don't use double quotes. I recommend the q{} operator:

$temp = q{grep "synopsys translate_" *.v | awk -F ":" '{print $1}' | u +niq}