in reply to variable access

$tura is declared within subroutine tura you need to return the value rather than print it. See also perlsub and Coping with Scoping.

Replies are listed 'Best First'.
Re^2: variable access
by aioan1 (Acolyte) on Jan 06, 2015 at 12:21 UTC
    I used "return" but no result. I cheked "perlsub" before asking for help.
      I used "return" ...

      But how did you use return? Are you saying that adding the statement
          return $tura;
      after the debug print statement that showed you that  $tura was something you expected and then assigning the returned value to another lexical
          my $other_lexical = tura();
      passed nothing back from the subroutine? This seems doubtful...


      Give a man a fish:  <%-(-(-(-<

        passed nothing back from the subroutine? This seems doubtful...

        You don't return from a callback :) unless the caller expects you to return ... Tk usually doesn't expect return values from callbacks ... op either needs to stuff $tura into a widget, or another object, which is done by giving it the object/widget as reference, or making the object/widget a global

        this means

        sub tura { ... $globals{tura} = $tura; ... -browsecmd => [ \&tura, \%globals ], ... sub tura { ... my( $globals_ref ) = @_; $globals_ref->{tura} = $tura; + ... -browsecmd => [ \&tura, \$original_tura ], ... sub tura { ... my( $tura_ref ) = @_; $$tura_ref = $tura;