perlで標準入力のコードを実行するときに引数を取る

$ echo 'print $ARGV[0]' | perl hoge
Can't open perl script "hoge": No such file or directory

って感じでエラーになるので

$ echo 'print $ARGV[0]' | perl - hoge
hoge

こうするといいらしい。

ここに書いてあった。

標準入力から暗黙に渡される。 ファイル名を示す引数が無い場合にのみうまくいきます。 STDIN から読み込むプログラムに引数を渡すには、 プログラム名として明示的に "-" を指定しなくてはなりません、

http://perldoc.jp/docs/perl/5.10.0/perlrun.pod