Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Need some help with a dodgy variable

by tachyon (Chancellor)
on Jul 30, 2001 at 18:09 UTC ( #100872=note: print w/ replies, xml ) Need Help??


in reply to Variable Scope

I have no idea what you are doing wrong because you post no code. Could I suggest How to get the most of your question from the monks to you.

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print


Comment on Re: Need some help with a dodgy variable
Re: Re: Need some help with a dodgy variable
by Anonymous Monk on Jul 31, 2001 at 16:55 UTC
    It would be pointless me posting my code as my question explains it exactly how it is.
    Ive only been using perl for the last two weeks, so bear with me please.

    I tried using 'use strict' but that makes my program to not work at all. Its definately not a my variable.

    heres an example then of what i mean:

    sub this_sub { $this_variable = "Jeff"; } sub that_sub { print "Hello "."$this_variable"; }

    Imagine these subs have been called accordingly, and when the last one is called, it just says "Hello ".

      The only way to get the result you note is to call that_sub() before this_sub(). This prints "Hello Jeff" just fine

      sub this_sub { $this_variable = "Jeff"; } sub that_sub { print "Hello "."$this_variable"; } this_sub(); that_sub(); # prints Hello Jeff

      All I can presume is that your test case above is not the same as your real code as the test works exactly as expected. this_sub sets the global var $this_variable which is then available everwhere.

      cheers

      tachyon

      s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

      A couple of remarks here.
      • If 'use strict' makes your program break, then take the time to fix what strict is complaining about. It will never complain about something that it shouldn't. (At least, not at the level you say you're programming at.)
      • Now that you have posted even just an example piece of code, we now know exactly what it is you're having a problem with. There are a number of potential problems you might have been having. Now that you have an example, I can give you a suggestion.
      Try the following code. Run it "as is" once, to understand what it's doing. (You might have to change where the Perl interpreter is.)

      #!/usr/local/bin/perl use strict; use warnings; my $file_scoped_variable = ''; sub modify_var { $file_scoped_variable = "Var Set"; } sub print_var { print "Hello ... " , $file_scoped_variable , "\n"; } &modify_var; &print_var; __END__
      If, when you try that small script, it doesn't work, then tell us why it doesn't work. Don't just say "Sorry, it's broken."

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://100872]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2014-10-02 00:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (41 votes), past polls