Christian Kruse: nur noch der Dateiname

Beitrag lesen

Hallo Norbert,

$datei="C:/0001stoffgalerien/sweatuni/Thumbs/tn_456067.jpg";
dann kommst Du an den reinen Dateinamen mit
$datei=~s/.*/(.*)/$1/;

Das war jetzt die langsame Methode. Die schnelle waere:

$date =~ s![^/]+!!;

Bitte, Leute, achtet auf die RegExe, die ihr formuliert! Das
ist *kein* vernachlaessigbarer Aufwand:

use strict;
use Benchmark;

my $filename = 'C:/0001stoffgalerien/sweatuni/Thumbs/tn_456067.jpg';

timethese(1000000, {
    backreference => sub {
      my $fname = $filename;
      $fname =~ s/.*/(.*)/$1/;
    },
    small => sub {
      my $fname = $filename;
      $fname =~ s![^/]+!!;
    }
  }
);

Benchmark: timing 1000000 iterations of backreference, small...
backreference: 15 wallclock secs (14.41 usr +  0.02 sys = 14.43 CPU)
     small: 10 wallclock secs ( 4.49 usr +  0.01 sys =  4.50 CPU)

Ein schneller RegEx kann ganz erheblich zur Erhoehung der
Laufzeit beitragen.

Gruesse,
 CK