Zugriff auf Array in externem File

19/12/2010 - 13:52 von Georg Hartinger | Report spam
Hallo,
ich bin noch relativ neu in Perl und komm hier einfach nicht weiter.

Ich habe ein paar Lookup-Tabellen definiert und möchte diese gerne in
eine extra Datei auslagern. Wenn ich die Lookup-Tabelle direkt ins
Hauptprogramm verschiebe, geht das problemlos.

Die Dateien hab ich mit 'require' eingebunden. Zugriff auf Subs aus
dieser Datei geht ohne Probleme, aber warum kann ich nicht auf die
Array's zugreifen? Unterstützt Perl so was nicht, oder gibts dafür eine
andere Syntax. Hab bei Tante google leider nichts dergleichen gefunden.

Vielen Dank schon mal

Georg Hartinger


Beispiel:

routines.pl
my @lookup=(0x63 ,0x7c, ...);


Hauptprogramm:

require 'routines.pl'

printf ("%x",@lookup[1]); #funktioniert nicht

my $out = getarray(1); #getarray ist extra sub im routines.pl
printf ("%x",$out); #funktioniert
 

Lesen sie die antworten

#1 Christian Kirsch
19/12/2010 - 16:30 | Warnen spam
Georg Hartinger schrieb:
Hallo,
ich bin noch relativ neu in Perl und komm hier einfach nicht weiter.

Ich habe ein paar Lookup-Tabellen definiert und möchte diese gerne in
eine extra Datei auslagern. Wenn ich die Lookup-Tabelle direkt ins
Hauptprogramm verschiebe, geht das problemlos.

Die Dateien hab ich mit 'require' eingebunden. Zugriff auf Subs aus
dieser Datei geht ohne Probleme, aber warum kann ich nicht auf die
Array's zugreifen? Unterstützt Perl so was nicht, oder gibts dafür eine
andere Syntax. Hab bei Tante google leider nichts dergleichen gefunden.

Vielen Dank schon mal

Georg Hartinger


Beispiel:

routines.pl
my @lookup=(0x63 ,0x7c, ...);


Hauptprogramm:

require 'routines.pl'

printf ("%x",@lookup[1]); #funktioniert nicht



und was bedeutet "funktioniert nicht"? Gibt es eine Fehlermeldung? Gibt
es eine Ausgabe, aber nicht das, was Du erwartest?

Außerdem: Benutzt Du Perl 6? Wenn nicht - @lookup[1] ist ziemlich sicher
nicht das, was Du benutzen willst, um auf das erste Element eines Arrays
zuzugreifen - dazu müsstest Du $lookup[0] schreiben.


my $out = getarray(1); #getarray ist extra sub im routines.pl



Schön. Dann könntest Du doch exakt den Code von getarray benutzen, um
weiter oben das zu erreichen, was Du erreichen möchtest. Was spricht
dagegen?

printf ("%x",$out); #funktioniert

Ähnliche fragen