Re: my in eval
新城@筑波大学情報です。こんにちは。
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
$
------------------------------------------------------------
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735