|< 1 2 3 4 5 ... 8 >| | 72 Einträge, 8 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!perl
# Beispiel - prüfen von Kommandos
use strict;
use warnings;
sub check_command {
if ((local $_ = shift) eq 'end') {
# Ende Nutzdaten
return '';
}
elsif (
# Kommandos verarbeiten
/^set\s+nr\s*=\s*(\d+)$/
or
/^set\s+typ\s*=\s*"([^"]+)"$/ and my $typ_flag = 1
) {
# verarbeitendes Programm für alle "set"-Kommandos
print $typ_flag ? qq~Typ "$1"~ : "Nummer $1", " wird gesetzt.\n";
} else {
# Fehlerbehandlung
return qq~Unbekanntes Kommando "$_" entdeckt.\n~;
}
undef;
}
for (
'set nr = 123',
'set typ="S4 Q"',
'Hallo',
'end',
'next',
) {
my $rc = check_command $_;
$rc and print "ERROR: $rc";
defined $rc and last;
}
Ergebnis:
Nummer 123 wird gesetzt.
Typ "S4 Q" wird gesetzt.
ERROR: Unbekanntes Kommando "Hallo" entdeckt.
perl -MO=Concise -e 'for (1..10) { my $y = {1=>2,3=>4}; $y->{$x} }'
QuoteBenchmark?Trotzdem läuft die 'case-like' Verzweigung per Hash, schneller als der if-elsif Block (es sei denn die erste if-Bedingung trifft sofort zu).
QuoteMeinst du den Einsatz des Wortes "horrors" in perlsyn.pod? Naja, trotzdem gilt TIMTOWTDI.Aber mal davon abgesehen ...
jede ernstzunehmende Perl-Literatur distanziert sich in aller Form vom Einsatz eines if-elsif-Blocks.
QuoteDie Compilezeit halte ich fuer relativ irrelevant, perl compiliert grundsaetzlich sehr schnell.Edit:
Wenn man mich fragen würde was schneller compiliert wird, ein if-elsif-Block oder ein Hash, so würde ich denn doch auf den Hash tippen.
perl -MO=Concise -e 'for (1..10) { my $y = {1=>2,3=>4}; $y->{$x} }'
QuoteBenchmark?Trotzdem läuft die 'case-like' Verzweigung per Hash, schneller als der if-elsif Block (es sei denn die erste if-Bedingung trifft sofort zu).
QuoteMeinst du den Einsatz des Wortes "horrors" in perlsyn.pod? Naja, trotzdem gilt TIMTOWTDI.Aber mal davon abgesehen ...
jede ernstzunehmende Perl-Literatur distanziert sich in aller Form vom Einsatz eines if-elsif-Blocks.
QuoteDie Compilezeit halte ich fuer relativ irrelevant, perl compiliert grundsaetzlich sehr schnell.[/quote]Edit:
Wenn man mich fragen würde was schneller compiliert wird, ein if-elsif-Block oder ein Hash, so würde ich denn doch auf den Hash tippen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
use Benchmark qw(cmpthese);
cmpthese(-1, {
hashsmall => sub {
my $x = {1 => "a",
};
},
hashlarge => sub {
my $x = {1 => "a",
2 => "b",
3 => "c",
4 => "b",
5 => "c",
6 => "b",
7 => "c",
8 => "b",
9 => "c",
10 => "c",
};
},
}
);
|< 1 2 3 4 5 ... 8 >| | 72 Einträge, 8 Seiten |