nun da es in meiner Struktur, in der ich Daten über die Socketverbindung übertrage, nur einen Zeilenumbruch gibt, löst diese Art des entfernens auch mein Problem. Nur hätte ich gerne gewußt, ob diese Art tatsächlich so inperformant ist, wie Struppi behauptete.
Ich bin nicht gut was Benchmarks angeht ( das Modul wurde dir ja schon nahegelegt):
use Benchmark;
my $text = 'test\n';
Benchmark::cmpthese(-1, {
'regExp$' => sub { $text =~ s/\n$//; },
'regExp' => sub { $text =~ s/\n//; },
'chomp' => sub { chomp $text; },
});
Benchmark: running chomp, regExp, regExp$, each for at least 3 CPU seconds...
chomp: 3 wallclock secs ( 3.22 usr + 0.00 sys = 3.22 CPU) @ 19810824.17/
s (n=63771043)
regExp: 2 wallclock secs ( 3.14 usr + 0.00 sys = 3.14 CPU) @ 8796678.66/s
(n=27621571)
regExp$: 3 wallclock secs ( 3.06 usr + 0.00 sys = 3.06 CPU) @ 13534063.03/
s (n=41441301)
Rate regExp regExp$ chomp
regExp 8796679/s -- -35% -56%
regExp$ 13534063/s 54% -- -32%
chomp 19810824/s 125% 46% --
aber wie immer, es kann sein das der Benchmark nicht realisitisch ist, da ich nicht mit Mechanismen vertraut bin.
Struppi.