perl Script Parameter

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 “=” 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 Mail.