in reply to Re^5: How to import "global" variables into sub-scripts from main script?
in thread How to import "global" variables into sub-scripts from main script?

Redeclaring a variable means its value is reset. This means a change to $DEBUG in the main script would have no effect in the companion file. I don't relish the idea of having to go and manually set debug variables in every one of the companion files (I currently have sixteen of them, and the list may grow yet more), save them, then reupload ALL of them to the server every time I want to debug something--then of course reverse the process to stop debugging. Joy! Doesn't that sound Perlish? ...all instead of just importing a variable. I truly have a hard time wrapping my mind around this major lapse in the Perl capabilities.

Blessings,

~Polyglot~

  • Comment on Re^6: How to import "global" variables into sub-scripts from main script?

Replies are listed 'Best First'.
Re^7: How to import "global" variables into sub-scripts from main script?
by choroba (Cardinal) on Mar 22, 2021 at 10:57 UTC
    our is not a declaration. It's different to local and my. Yes, it's confusing.

    Have you tried it? For example:

    1.pl

    #!/usr/bin/perl use warnings; use strict; our $x = 12; require './2.pl'; print "Done\n";

    2.pl

    #!/usr/bin/perl use warnings; use strict; our $x; print $x, "\n";

    Calling 1.pl:

    12 Done

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]