#!/usr/bin/perl use diagnostics; use strict; use warnings; use Tk; my $mw = new MainWindow; $mw->title('Button mit geteiltem Text?'); my $e = $mw->Entry(-text    => '',                   -width   => 80,                  )            ->pack(                   -expand  => 1,                   -fill    => 'x',                  ); $mw->bind ('', \&vervollstaendige ); $e->focus(); MainLoop(); sub vervollstaendige {    my $text = $e->get();    print $text, "\n";    my @treffer;    my ($pfad, $trenner, $anf) = $text =~ m~^(.*)([/\\])([^/\\]*)$~;    print "pfad='$pfad', Anfang='$anf'\n";    if (! -d $pfad) {        print "'$pfad' ist kein Verzeichnis, Abbruch\n";    }    else {        opendir PFAD, "$pfad/" or die "Kann Verzeichnis '$pfad' nicht öffnen: $!";        my @verzeichnisse = grep -d "$pfad/$_", readdir PFAD;        closedir PFAD;        for my $v (@verzeichnisse) {            print "Verzeichnis '$v'\n";            if ($v =~ /^\Q$anf/i) { # bei Linux/Unix das i entfernen!                print "Anfang '$anf' passt auf '$v'\n";                push @treffer, $v;            }        }    }    if (scalar(@treffer) == 1) {        $e->delete(0, 'end');        $e->insert('end', "$pfad$trenner$treffer[0]");        $e->selectionClear();        $e->icursor('end');    }    else {        $e->delete(0, 'end');        $e->insert('end', "$pfad$trenner$anf");        $e->selectionClear();        $e->icursor('end');    } } # sub vervollstaendige