perlムズいです。

eval 'case $# in 0) exec /usr/bin/perl -S "$0";; *) exec /usr/bin/perl -S "$0" "$@";; esac'
  if 0;

autoscanというのを読もうと思ったら、これがわかりません。evalは中の文字列を
shellとして実行して、その結果をperlとして実行する。でいいのでしょうか?
これは何がしたいのでしょうか?

それとif 0;というのはなんなんでしょうか?

おねがいします。