#!/usr/bin/perl -- use strict; use warnings; Main( @ARGV ); exit( 0 ); sub Main { StdToLong('dhlLio:P:pqrv:c'); } BEGIN { my %Flags = ( #~ ':' => '', # boolean, default ':' => '!', # boolean, explicit, negatable '' => '=s', ); sub StdToLong { StdToLong1(@_); StdToLong2(@_); } sub StdToLong1 { print "GetOption(\n"; while( $_[0] =~ m/(\w)(\W)?/g ){ no warnings 'uninitialized'; print qq[ '$1$Flags{$2}' => \$opt_$1, # $1$2 \n]; } print "\)\n"; } sub StdToLong2 { print "GetOption( \%h,#values in %h\n"; while( $_[0] =~ m/(\w)(\W)?/g ){ no warnings 'uninitialized'; print qq[ '$1$Flags{$2}', # $1$2 \n]; } print "\)\n"; } } __END__