Mit der folgenden kleinen Funktion können Kommandozeilenargumente in einen Hash umgewandelt werden. Es gilt: Argumente, die durch ein „“ eingeleitet werden dürfen nur aus einem Zeichen bestehen, Parameter die mit „– –“ beginnen können aus mehreren Zeichen bestehen. Jeder Parameter kann mit „=<wert>“ erweitert werden. Der Hash, der zurückgegeben wird enthält als Schlüssel alle Argumente und als Wert den dazugehörigen Wert bzw. „true„, wenn kein Wert angehängt wurde.

sub getArgv {
  my %return;
  foreach (@_) {
    s/^(-(\w{1})=?(.*))|(--(\w*)=?(.*))$/$2$5/;
    $return{$2.$5} = ($3 || $6) ? $3 . $6 : true if ($2 || $5);
  }
  return %return;
}

Verbesserungsvorschläge bitte als Kommentar.

Share on FacebookShare on Google+Tweet about this on TwitterEmail this to someone