Nun, hier ein kurzes schmutziges Perl-Beispiel zum Konvertieren einer Zeichenfolge mit folgendem Format in Millisekunden: "Ad Bh Cm Ds", wobei A, B, C und D Werte für Tag, Stunde, Minute und Sekunde sind. Die Reihenfolge spielt keine Rolle, aber eine Wiederholung wird nicht in Betracht gezogen (z. B. wird nur der erste 'd'-Auftritt verarbeitet, andere werden ignoriert).
#!/usr/bin/perl use strict; my @markers = ('d', 'h', 'm', 's'); my @converter = (24*60*60*1000, 60*60*1000, 60*1000, 1000); my $string = $ARGV[0]; my $total_ms = 0; while(@markers) { my $cur_mark = shift(@markers); my $cur_convert = shift(@converter); if ($string =~ m/$cur_mark/) { my $pre = $`; $pre =~ m/\b/; $total_ms += $' * $cur_convert; } } print("Total miliseconds = $total_ms\n");
Anwendungsbeispiele:
./foo.pl "2m 2s" Total miliseconds = 122000 ./foo.pl "0.5h 0.5s" Total miliseconds = 1800500