タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

evalに関するkamipoのブックマーク (1)

  • 呼び出し元のコンテキストで eval する方法 - kazuhoのメモ置き場

    String::TT なんかがそうですけど、呼び出し元の変数を使いたい、ということがときどきあります。たとえば、 sub hello_to_alice { my $user = "Alice"; say_hello(); # "Hello to Alice!" と言ってほしい } って書きたいとか、そういうケースですね。結論から言うと、以下のように say_hello 関数を定義すれば可能です。こんな感じ。 sub say_hello { @_ = ('print "Hello to $user!\n"', undef); goto &DB::eval_in_parent_and_return; } package DB; sub DB::eval_in_parent_and_return { my ($expr, $retvar) = @_; eval("package " . (cal

    呼び出し元のコンテキストで eval する方法 - kazuhoのメモ置き場
    kamipo
    kamipo 2009/03/18
    perl デバッガを実装するために、DB パッケージ内での eval は呼び出し元のコンテキストで実行されるようになっている
  • 1