• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:$port = shiftで取り出されているもの)

$port = shiftで取り出されているもの

このQ&Aのポイント
  • Perlプログラムの一部である$port = shiftの使用方法に関する質問です。
  • そのままではエラーになるため、引数に@ARGVを追加して使用しているが、この対処方法は妥当かどうかを尋ねています。
  • また、なぜこのようなコードになっているのか、作者の意図や理由を知りたいとも考えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

推測ですが shift の引数が省略された時には @ARGV が引数になるので 元々のプログラムでは、 メインで $port = shift or die "error."; になっていたところを、 portget(); に後から置き換えたんだと思います。 ところが、ご指摘にように、 サブルーチン内では、 shift の引数は省略時には、@_ を対象としますから、 間違いです。 おそらく、置き換えた時に修正するのをうっかりしたんだと思います。

noname#17299
質問者

お礼

うっかり間違いだったんですね。 きちんと作ってそうなサイトでも間違えていることもあるんですね。 でも、動作確認してれば間違えることはないですね。 やはりプログラムは検証が必要だと改めて思いました。 どうもありがとうございました。

関連するQ&A