- 締切済み
CGIプログラムでわからない行があります
こんばんわ。 あるCGIプログラムのサンプルを読んでいるのですが、どうしても理解できないところがあります。 foreach(@a) { $n ++; $a[0]=~/([^=]+)=([^=]+)/; $ENV "NAME" . $n = $1; $ENV "VALUE" . $n = $2; } このループは一体どんな処理をしているのでしょうか。 部分だけの抜粋なので、わかりにくいかと思いますが とりあえず記号の意味だけでもわかればと思っております。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- wogota
- ベストアンサー率42% (66/154)
回答No.1
コメントをつけると、こんな感じになると思います。 foreach(@a){ # 配列@aの個数だけループを行う $n++; # $nをインクリメントする $a[0]=~/([^=]+)=([^=]+)/; # @aの0番目の要素(文字列)で、=で分けられた # 左右に対し、左は$1、右は$2に代入する $ENV "NAME".$n= $1; # 環境変数として、"NAME?"(?には$nの数値を文字列に # したものが入る)に$1を設定する $ENV "VALUE".$n=$2; # 同じく"VALUE?"に$2を設定する } となります。が、$a[0]という部分が何か変ですので、$_か$a[n-1]かも知れないです。 抜粋ということですので、$nはこのループの前で$n=0などの初期化がされていると思います。 ということで、正規表現を調べてみたほうがいいかもしれません。