#!/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;             }         }     }     $e->delete(0, 'end');     if (scalar(@treffer) == 1) {         $e->insert('end', "$pfad$trenner$treffer[0]");     }     else {         $e->insert('end', "$pfad$trenner$anf");     }     $e->selectionClear();     $e->icursor('end');     $e->configure(state => 'disable');     $e->configure(state => 'enable');     $e->focus(); } # sub vervollstaendige