/[cvs]/nfo/perl/libs/Getopt/Easy.pm
ViewVC logotype

Annotation of /nfo/perl/libs/Getopt/Easy.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sat Feb 1 02:59:59 2003 UTC (21 years, 3 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +6 -3 lines
+ modified option/argument-detection regex

1 joko 1.1 ## ------------------------------------------------------------------------
2 joko 1.2 ## $Id: Easy.pm,v 1.1 2003/02/01 01:57:56 joko Exp $
3 joko 1.1 ## ------------------------------------------------------------------------
4 joko 1.2 ## $Log: Easy.pm,v $
5     ## Revision 1.1 2003/02/01 01:57:56 joko
6     ## + initial commit - partly refactored replace_cvs/replace_cvs.pl
7     ##
8 joko 1.1 ## ------------------------------------------------------------------------
9    
10    
11     package Getopt::Easy;
12    
13     use strict;
14     use warnings;
15    
16     use base qw( DesignPattern::Object );
17    
18    
19     use Data::Dumper;
20     #use Getopt::Long;
21     use Hash::Merge qw( merge );
22    
23     # TODO: remember last used behaviour and restore to it after usage
24     Hash::Merge::set_behavior( 'RIGHT_PRECEDENT' );
25    
26    
27     sub merge_defaults {
28     my $self = shift;
29     my $defaults = shift;
30     my $prefs = {};
31     $self->{_meta} = merge($prefs, $defaults);
32     }
33    
34     sub merge_cli_arguments {
35     my $self = shift;
36     #my $prefs = $self->{_meta};
37     #print Dumper($self->{_meta});
38     # read arguments from cli
39     #my $settings = {};
40     my $settings_tmp = {};
41     #my $args = [];
42     my $args;
43     while (my $arg = shift @ARGV) {
44     next if !$arg;
45 joko 1.2 if ($arg =~ m/^--([\w|\-|\.]+)(=.+?)??$/) {
46 joko 1.1 my $val = $2;
47     if ($val) {
48     $val =~ s/^=//;
49     } else {
50     $val = 1;
51     }
52     $settings_tmp->{options}->{$1} = $val;
53     next;
54     }
55     #push @{$settings_tmp->{args}}, $arg;
56     push @{$args}, $arg;
57     }
58     #print Dumper($settings_tmp);
59     my $new = merge($self->{_meta}, $settings_tmp);
60     $new->{args} = $args if $args;
61     #print Dumper($new);
62     #return $new;
63     $self->{_meta} = $new;
64     }
65    
66     sub getOptions {
67     my $self = shift;
68     return $self->{_meta};
69     }
70    
71     1;

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed