#!/bin/bash
LINE='eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)'
if ! grep -qF "$LINE" file.txt ; then echo "$LINE" >> file.txt ; fi
O $ (...) retornará o resultado do comando, não o valor errorlevel. Use sem substituição de comando para obter o código de retorno adequado.