新城@筑波大学情報です。こんにちは。

In article <JUN.03Oct31190218@watson.nih.go.jp>
        jun@nih.go.jp writes:
> 以下のコードを実行すると、$a,$b,$cに何も代入されないのですが、
> myを削除するとうまくいきます。どうしてなのでしょうか?

「うまくいく」ということは、元々代入したいわけですね。

どうしてかと問われると、答えとしては、代入したい時と
代入したくない時があって、それを区別するために、my を
付けたり付けなかったりすることで区別するようにした、
という答えも可能なんだろうけれど、

> $data = "1 2 3";
> $cmd = 'my($a,$b,$c)=split(/\s/,$data);';
> eval $cmd;
> print "$a $b $c\n";

インタプリタ作ったら、たまたまそうなったという話もありそうな
気もするし。

sh だとこうなりました。sh に my はないか。
------------------------------------------------------------
$ data="1 2 3"
$ cmd='set $data'
$ eval $cmd
$ echo $1 $2 $3
1 2 3
$ 
------------------------------------------------------------

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\