Thread Modul übergreifend auf variablen zugreifen? (14 answers)
Opened by BratHering at 2006-05-13 01:08

renee
 2006-05-16 09:52
#66066 #66066
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Matze: Bei dem print-Aufruf im packagefoo ist das Array noch nicht bekannt. Die ganzen uses werden vor dem eigentlichen Skript abgearbeitet., so dass beim Parsen folgendes passiert:

Programm:
Code: (dl )
1
2
3
4
5
#!/usr/bin/perl

use foo;

@array = qw(1 2 3 4);


foo.pm
Code: (dl )
1
2
3
4
5
package foo;

print "@main::array";

1;


Parsen:

1.) Shebang
2.) Suche nach foo.pm
3.) Führe den Code von foo.pm aus
4.) fülle das Array mit den Zahlen


Du kannst das folgendermaßen umgehen:

Methode 1:

Skript:
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use warnings;

our @array = qw(1 2 3 4);

require foo;


foo.pm
Code: (dl )
1
2
3
4
5
package foo;

print "@main::array";

1;



Methode 2:

Skript:
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use warnings;
use foo;

our @array = qw(1 2 3 4);
foor::print_array();


foo.pm:
Code: (dl )
1
2
3
4
5
6
7
package foo;

sub print_array{
print "@main::array";
}

1;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Modul übergreifend auf variablen zugreifen?