hotti: Kürzel erzeugen für CLI-Optionen

Beitrag lesen

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 ;)