Font
[thread]7286[/thread]

variable an eval?



<< |< 1 2 >| >> 15 entries, 2 pages
Strazke
 2005-09-18 17:04
#58106 #58106
User since
2005-07-11
120 articles
BenutzerIn
[default_avatar]
Hallo, gibt es eine möglich keit, eine globale Variable auch für eval zugriffbar zu machen? Das Problem ist, dass ich in meinem Code eine Variable habe. Dann rufe ich eine Funktion in einem externen Package auf, welche dann wiederum mit eval code ausführt. Der Code in eval soll nun aber auf die variable aus dem Hauptprogramm zugreifen. Geht das irgendwie?
sri
 2005-09-18 17:36
#58107 #58107
User since
2004-01-29
828 articles
BenutzerIn
[Homepage] [default_avatar]
perldoc -f our
Strazke
 2005-09-18 17:52
#58108 #58108
User since
2005-07-11
120 articles
BenutzerIn
[default_avatar]
ich scheine das wieder falsch zubenutzen:
our $x = "x";
package->method;

und die method macht:
open ...
while ...
eval ...

Aber das geht leider nicht. Woran kann das liegen???
Relais
 2005-09-18 17:58
#58109 #58109
User since
2003-08-06
2239 articles
ModeratorIn
[Homepage] [default_avatar]
perldoc -f our
Erst denken, dann posten -- Frankfurt.pm-Treffen am Dienstag 07.01.2020 im Café Diesseits
22. Deutscher Perl-Workshop 04. bis 06.03.2020 in Erlangen.
Frankfurt Perl-Workshop 2020-1 ca. Mai-Juni 2020 im Haus der Jugend

Winter is Coming
Strazke
 2005-09-18 18:08
#58110 #58110
User since
2005-07-11
120 articles
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
                   package Foo;
our $bar; # declares $Foo::bar for rest of lexical scope $bar = 20;

package Bar;
print $bar; # prints 20


Das ist doch das, was ich mache, nur das das ich das package in einer anderen Datei haben.
betterworld
 2005-09-18 19:08
#58111 #58111
User since
2003-08-21
2613 articles
ModeratorIn

user image
Die andere Datei hat auch einen anderen lexical scope. Vielleicht hilft Dir Exporter weiter? (Hat auch eine perldoc-Seite)
sri
 2005-09-18 23:33
#58112 #58112
User since
2004-01-29
828 articles
BenutzerIn
[Homepage] [default_avatar]
Steht doch alles im perldoc von our! (Ich gehe mal davon aus das beide Skripte/Module geladen sind...)
Code: (dl )
    our $bar;           # declares $Foo::bar for rest of lexical scope              

Was sagt dir dieser Kommentar? :)
Strazke
 2005-09-19 00:26
#58113 #58113
User since
2005-07-11
120 articles
BenutzerIn
[default_avatar]
nix, weil ich nicht weis, was ein lexical scope ist
Strazke
 2005-09-19 01:54
#58114 #58114
User since
2005-07-11
120 articles
BenutzerIn
[default_avatar]
Das mit dem Exporter habe ich, obwohl ich die Seite von perldoc.perl gelesen habe, nicht verstanden. Was ist der unterschie zwischen Exporter und exporter_ok?

Ich habe das Problem jetzt einfach mit main::variable gelöst.
betterworld
 2005-09-19 03:36
#58115 #58115
User since
2003-08-21
2613 articles
ModeratorIn

user image
exporter_ok sagt mir nichts. Meinst Du @EXPORT_OK (in Großbuchstaben und zwei Buchstaben weniger)? Das ist ein Array von Namen, die standardmaessig exportiert werden, wenn der Benutzer nichts angibt (wie in "use Modul"). Hingegen werden die Namen in @EXPORT nur dann exportiert, wenn der Benutzer es will (wie in "use Modul qw(blah)")
<< |< 1 2 >| >> 15 entries, 2 pages



View all threads created 2005-09-18 17:04.