Verdammte Spielerei ;)
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
# Options
my @opts = qw(version verein verbose vname vorname vergleich dateum);
my %meta = ();
# Opts durchgehen und für jede Opt die Stückchen aufsammeln
foreach my $opt( @opts ){
my $lets = [split '', $opt]; # in Buchstaben splitten
my $stub = '';
for( my $i = 0; $i < scalar @$lets; $i++){
$stub .= $lets->[$i];
push @{$meta{$stub}}, $opt;
}
}
my %res = ();
# In diesem Hash sind nur Einträge interessant, die ein Array-Element haben
foreach my $short( sort keys %meta ){
next if scalar @{$meta{$short}} > 1;
#print "$short => $meta{$short}->[0]\n";
# hash umdrehen und den kürzesten Eintrag nehmen, der hat den index 0
push @{$res{$meta{$short}->[0]}}, $short;
}
print "Ausgabe der erlaubten Kürzel\n";
foreach my $opt( sort keys %res){
print "$opt => $res{$opt}->[0]\n";
}
Ausgabe der erlaubten Kürzel
dateum => d
verbose => verb
verein => vere
vergleich => verg
version => vers
vname => vn
vorname => vo
Getopt::Long entsprechend.
Schönes Wochenende ;)