App-Greple-pw
view release on metacpan or search on metacpan
lib/App/Greple/PwBlock.pm view on Meta::CPAN
$obj->parse_pw if config('parse_pw');
$obj->parse_id if config('parse_id');
$obj;
}
sub make_pattern {
my $opt = ref $_[0] eq 'HASH' ? shift : {};
use English;
local $LIST_SEPARATOR = '|';
my @match = @_;
my @except = qw(INPUT);
push @except, @{$opt->{IGNORE}} if $opt->{IGNORE};
qr{ ^\s*+ (?!@except) .*? (?:@match)\w*[:=]? [\ \t]* \K ( .* ) }mxi;
}
# Getopt::EX::Config support
our $config = Getopt::EX::Config->new(
parse_matrix => 1,
parse_id => 1,
parse_pw => 1,
id_keys => join(' ',
lib/App/Greple/pw.pm view on Meta::CPAN
print "@values\n";
}
}
elsif (/^show\b/i) {
print $pw->masked;
}
elsif (/^orig\b/i) {
print $pw->orig;
}
##
## INPUT to browser
##
elsif (s/^input\s*//i) {
my %field = do {
map {
m{
( (?: name: | id: )? \w+ )
(?|
\s+ (.*) # '=' ããªããã°æ®ãå
¨é¨
|
= ( \/.+\/ | \w+ (?:,\w+)* )
)
}xg
}
$pw->orig =~ /^INPUT\s+(.+)/mg;
};
warn Dumper \%field if config('debug');
my @arg = do {
map { /^([a-z]\d\s*){2,}$/i ? /([a-z]\d)/gi : $_ }
map { m{^/(.+)/$} ? get_pattern($1) : $_ }
map { $field{$_} or $_ }
map { split /[\s=]+/ }
map { $field{$_} or $_ }
split /\s+/;
};
( run in 2.992 seconds using v1.01-cache-2.11-cpan-13bb782fe5a )