Jemand zu Hause?Leser: 30
2011-03-28T14:42:42 GwenDragonMuss bianca mal testen. ;)
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-28T15:14:32 pqSorrymehr info, wie immer.
2011-03-28T15:14:32 pqan welcher stelle steht das eval und was steht in $@, wenn das "or" ausgeführt wird, also $zeitkorrektur_modul 0 ist?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#!/usr/bin/perl -w use strict; use warnings; use Date::Calc qw ( System_Clock ); use Data::Dumper; my $zeitkorrektur_modul = 1; eval "use Win32::UTCFileTime qw (:globally); 1;" or $zeitkorrektur_modul = 0; #use Win32::UTCFileTime qw (:globally); print "\$zeitkorrektur_modul = $zeitkorrektur_modul\n"; print "\$@ = $@\n"; my @test = System_Clock (0); print Dumper (\@test); print "Doofe Sommerzeit aktiv: " . ($test[8] == 1 ? 'ja' : ($test[8] == -1 ? 'unbekannt' : 'nein')) . "\n"; print "time: " . time() . "\n"; print "localtime: " . localtime() . "\n"; print "gmtime: " . gmtime() . "\n"; my $datei = '../pfad/datei.bak'; print "stat Testdatei (25.03.2009 18:11:30 MEZ): " . (stat($datei))[9] . ' / ' . gmtime((stat($datei))[9]) . "\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$zeitkorrektur_modul = 1
$@ =
$VAR1 = [
2011,
3,
28,
17,
25,
0,
87,
1,
1
];
Doofe Sommerzeit aktiv: ja
time: 1301325900
localtime: Mon Mar 28 17:25:00 2011
gmtime: Mon Mar 28 15:25:00 2011
stat Testdatei (25.03.2009 18:11:30 MEZ): 1301076690 / Fri Mar 25 18:11:30 2011
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$zeitkorrektur_modul = 1
$@ =
$VAR1 = [
2011,
3,
28,
17,
25,
32,
87,
1,
1
];
Doofe Sommerzeit aktiv: ja
time: 1301325932
localtime: Mon Mar 28 17:25:32 2011
gmtime: Mon Mar 28 15:25:32 2011
stat Testdatei (25.03.2009 18:11:30 MEZ): 1301073090 / Fri Mar 25 17:11:30 2011
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-28T15:27:28 pqpack es in einen BEGIN-block.
2011-03-28T15:30:50 bianca
1 2 3 4
BEGIN { eval "use Win32::UTCFileTime qw (:globally); 1;" or $zeitkorrektur_modul = 0; }
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-28T15:37:48 pqamnesie?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#!/usr/bin/perl -w use strict; use warnings; use Date::Calc qw ( System_Clock ); use Data::Dumper; my $zeitkorrektur_modul = 1; BEGIN { eval "use Win32::UTCFileTime_SIMULATION_NICHT_VORHANDEN qw (:globally); 1;" or $zeitkorrektur_modul = 0; } print "\$zeitkorrektur_modul = $zeitkorrektur_modul\n"; print "\$@ = $@\n"; my @test = System_Clock (0); print Dumper (\@test); print "Doofe Sommerzeit aktiv: " . ($test[8] == 1 ? 'ja' : ($test[8] == -1 ? 'unbekannt' : 'nein')) . "\n"; print "time: " . time() . "\n"; print "localtime: " . localtime() . "\n"; print "gmtime: " . gmtime() . "\n"; my $datei = 'datei.bak'; print "stat Testdatei (25.03.2009 18:11:30 MEZ): " . (stat($datei))[9] . ' / ' . gmtime((stat($datei))[9]) . "\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$zeitkorrektur_modul = 1
$@ =
$VAR1 = [
2011,
3,
28,
17,
53,
28,
87,
1,
1
];
Doofe Sommerzeit aktiv: ja
time: 1301327608
localtime: Mon Mar 28 17:53:28 2011
gmtime: Mon Mar 28 15:53:28 2011
stat Testdatei (25.03.2009 18:11:30 MEZ): 1301076690 / Fri Mar 25 18:11:30 2011
1 2 3 4 5
my $zeitkorrektur_modul; BEGIN { eval "use Win32::UTCFileTime_Foo qw (:globally); 1;" and $zeitkorrektur_modul = 1; }
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-28T16:02:27 pqumgekehrte logik.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-28T16:29:25 pqder code hat nicht mitten im script zu stehen.
das einbinden muss beim kompilieren geschehen, da es core-funktionen überschreibt.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-28T16:38:36 pqdann benutz halt nicht :globally. steht doch dabei, wofür es ist.
2011-03-28T16:47:07 biancaMein Problem ist, dass das Script und auch das Modul auch auf einem Linux laufen muss. Das heißt, ein use bei fehlendem Modul darf nicht zum Tod des Scripts führen.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-29T05:20:18 biancaDer komplette BEGIN Block funktioniert auch mittem im Script tadellos wie gewünscht.
QuoteABER: [...]
QuoteWas mache ich da noch falsch?
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-29T08:57:20 biancaIst es unter diesen Gesichtspunkten trotzdem sinnvoll und funktionell, das Modul ganz an den Anfang des Mainscripts zu setzen oder wie macht man das am besten?
2011-03-29T09:08:28 GwenDragonUm gleich einen Überblick über mögliche eingebundene Module zu haben
Quotees ist ein BEGIN-block. es ist total sinnlos, den irgendwo mitten ins skript zu setzen, weil er eh in der kompilierungsphase ausgeführt wird.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-29T09:12:23 pqder BEGIN-block gehört trotzdem nicht mitten ins skript und ich bitte dich, den unsinn jetzt zu lassen, mein posting zu verstehen und ggfs. konkrete fragen zu stellen.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-29T10:07:53 pqaber dein code ist ja wie immer geheim.
2011-03-29T10:07:53 pqwenn du die funktion NICHT global ersetzen willst, dann NIMM NICHT :globally.
1
2
3
4
5
6
7
8
9
10
perl -wE'
sub foo {
my $bar;
BEGIN {
$bar = 23;
}
}'
Variable "$bar" will not stay shared at -e line 7.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-29T10:23:05 pqnein. es macht wirklich keinen unterschied.
du kannst den block in die letzte zeile schreiben, in zeile 4 oder in zeile 42. es wird immer in der kompilierungsphase ausgeführt.
2011-03-29T11:05:47 biancaUnd das ist der entscheidende Punkt. Mein Mainscript wird immer aufgerufen. Mein eigenes Adminmodul nur dann, wenn eine der Adminfunktionen aufgerufen wird.
Von daher mächte ich gern alles was mit externen Modulen zusammenhängt nicht im Mainscript abfackeln sondern in meinem Adminmodul damit Perl garnicht erst an der Stelle vorbei kommt.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2011-03-29T10:23:05 pqich warte also auf konkrete antworten.
2011-03-29T15:39:32 GwenDragonund Fragen stellen ist manchmal auch schwieriger als welche beantworten.