Thread [Tk] Icons und Images in externe Datei auslagern (XPM-Format) (11 answers)
Opened by Kean at 2014-08-07 13:43

rosti
 2014-08-08 22:14
#176784 #176784
User since
2011-03-19
3233 Artikel
BenutzerIn
[Homepage]
user image
Quote
Gibt es keine Möglichkeit die variablen in dem Modul nur bei Aufruf in den Speicher zu laden?


Das kann bereits require erledigen, require gibt beim ersten Aufruf die in der Datei notierte letzte Anweisung zurück.

Gewöhnlich wird dort eine 1; notiert, Du kannst da aber auch eine Hash-Referenz hinterlegen. Beachte jedoch, dass beim zweiten und jedem weiteren Aufruf mit require in diesem Fall der Rückgabewert nur noch ein wahrer Wert ist.

Auf diese Art und Weise kannst Du auch unterhalb des __DATA__ Token beliebige Daten/Sequenzen hinterlegen, wobei eine oberhalb von __DATA__ hinterlegte Funktionsreferenz aus der Sequenz eine Hash-Referenz macht, die beim Aufruf der Funktion zurückgegeben wird. Und wenn Du da einen typeglob verwendest, kannst Du diese Funktion dann beliebig oft aufrufen, also immer dann, wenn ein wahlfreier Zugriff auf die Daten erforderlich ist.

Mehr dazu: http://rolfrost.de/reqauto.html und http://rolfrost.de/klassenmethoden.html

Edit, Beispiel einer Config, die mit require eingebunden wird.

Config Datei Images.pm
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use strict;
use warnings;
use Config::IniFiles;

do{
    my $href = tie my %data, 'Config::IniFiles', -file => *DATA;
    \%data;
};

__DATA__
[foo]
bar=123
dog=boo

[bar]
person=me
group=fuzzies



Verwendung in der main:

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

use strict;
use warnings;
use Data::Dumper;

my $data = require Images;
print Dumper $data;


Ausgabe der Daten:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
$VAR1 = {
'foo' => {
'bar' => '123',
'dog' => 'boo'
},
'bar' => {
'person' => 'me',
'group' => 'fuzzies'
}
};

Last edited: 2014-08-09 10:36:43 +0200 (CEST)

View full thread [Tk] Icons und Images in externe Datei auslagern (XPM-Format)