• ベストアンサー

関数reverseの戻り値

2行目と3行目の出力がなぜ異なるのか理解できません。 2行目が期待通りに動かなかったので3行目のように書き直したのですが、 理由を教えていただけると助かります。 $s = 'goo'; print ((reverse $s), "\n"); print (($t = reverse $s), "\n");

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

  • ベストアンサー
  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

しっかりとした検証はしていませんが… 2行目はリストコンテキストの評価となり、3行目はスカラコンテキストでの評価になるからだと思われます。

JF1Msf
質問者

お礼

なるほどなるほど、確かにそういうことでしょう。 デフォルトでは、2行目のようにリストコンテキストになるんですね。 配列の要素が1つしかなくて、それをreverseするから、 結果だけ見ると、何も起こっていないように見える。 納得しました。 ありがとうございました。

関連するQ&A