#! /usr/bin/perl use strict; use warnings; use 5.020; use Getopt::Long; Getopt::Long::Configure( qw( no_ignore_case no_bundling no_auto_abbrev ) ); #> sub routines #> -------------------------------------------------------------------- sub modified_warnings { my ( $message ) = @_; $message =~ s/Unknown option: .+/Parameter - Fehler/; $message =~ s/Option (.+) requires an argument$/Parameter $1 benoetigt ein Argument./; print STDERR $message; } sub print_help { say "How to call me.\n"; } #> main programm #> -------------------------------------------------------------------- my $Debug = 'Bob'; my $Module = undef; my $Verify = 0; my $Help = 0; { local $SIG{__WARN__} = \&modified_warnings; GetOptions( 'Debug=s' => \$Debug, 'Module=s' => \$Module, 'Verify=s' => \$Verify, 'Help' => \$Help, ) or die "Falsche Verwendung!\n"; }; if ( $Help ) { print_help(); exit 0; } # Wenn -Verify gesetzt wurde, muss -Module ebenfalls gesetzt werden if ( $Verify ) { if ( ! $Module ) { die "--Verify erfordert die gleichzeitige Angabe von --Module\n"; } } # Ansonsten setze $Module auf einen Defaultwert, wenn es nicht angegeben wurde elsif ( ! $Module ) { $Module = 26; } __END__