Ich lese folgende $entry ein:
Format:
Zahl1;Datum1;Zahl2;Datum2 oder "yesterday";beliebigerString
Beispiele:
Quote433076;16-02-2004;0;12-03-2005;--==EXECUTER==--
423595;15-04-2003;-746;yesterday;Keyfinder
442191;12-10-2004;0;yesterday;Spider-Mann
Ich brauche die Zahlen, den String und das Datum1 bzw. Datum2 bzw. "yesterday" in Epochsekunden.
Was ist besser, dies:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
my ($entry1, $entry2, $entry3, $entry4, $entry5) = split (/\s*;\s*/, $entry, 5);
if ($entry1 =~ /^\d+$/) {
$i::zahl1 = $entry1;
}
my ($day1, $month1, $year1) = split (/\s*-\s*/, $entry2, 3);
if ($day1 =~ /\d{2}/ and $month1 =~ /\d{2}/ and $year1 =~ /\d{4}/) {
$i::date1 = timegm (0,0,0,$day1,($month1 - 1),$year1);
}
if ($entry3 =~ /^\d+$/) {
$i::zahl2 = $entry3;
}
if ($entry4 =~ /^yesterday$/i) {
$i::date2 = $^T - 24*60*60;
} else {
my ($day2, $month2, $year2) = split (/\s*-\s*/, $entry4, 3);
$i::date2 = timegm (0,0,0,$day2,($month2 - 1),$year2);
}
$i::name = $entry5;
oder folgendes:
if ($entry =~ /^(\d+);(\d{2})-(\d{2})-(\d{4});(\d+);(\d{2})-(\d{2})-(\d{4})|(yes)(ter)(day);(.+)/i) {
$i::zahl1 = $1;
$i::date1 = timegm (0,0,0,$2,($3 - 1),$4);
$i::zahl2 = $5;
if ($6.$7.$8 =~ /^yesterday$/i) {
$i::date2 = $^T - 24*60*60;
} else {
$i::date2 = timegm (0,0,0,$6,($7 - 1),$8);
}
$i::name = $entry5;
}
\n\n
<!--EDIT|Spider-Mann|1122131386-->