Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- How can match the first value of @ARGV to an array of possible options
- my $primary_mode = $ARGV[0];
- primary_mode_check($primary_mode);
- sub primary_mode_check {
- my @program_modes = ('create', 'destroy');
- my $selected_mode = shift;
- foreach my $mode (@program_modes) {
- if ($selected_mode ne $mode) {
- die RED "'$selected_mode' is not a valid program mode!n";
- }
- }
- }
- my @program_modes = qw( create destroy );
- sub primary_mode_check {
- my ($selected_mode) = @_;
- for my $mode (@program_modes) {
- return if $selected_mode eq $mode;
- }
- die "'$selected_mode' is not a valid program mode!n";
- }
- my %program_modes = map { $_ => 1 } qw( create destroy );
- sub primary_mode_check {
- my ($selected_mode) = @_;
- die "'$selected_mode' is not a valid program mode!n"
- if !$program_modes{$selected_mode};
- }
- my $primary_mode = $ARGV[0] or die "No mode provided";
- primary_mode_check($primary_mode);
- sub primary_mode_check {
- my $selected_mode = shift;
- my @program_modes = ('create', 'destroy');
- die "'$selected_mode' is not a valid program mode!n"
- unless grep { $selected_mode eq $_ } @program_modes;
- }
- use v5.10;
- my $primary_mode = $ARGV[0] or die "No mode provided";
- my @program_modes = qw(create destroy);
- die "'$selected_mode' is not a valid program mode!n"
- unless $primary_mode ~~ @program_modes;
- #!/usr/bin/env perl
- use warnings; use strict;
- my ($primary_mode) = @ARGV;
- my $allowed_modes = [qw(create destroy)];
- check_primary_mode($primary_mode, $allowed_modes)
- or die sprintf "%s is not a valid program moden", $primary_mode;
- sub check_primary_mode {
- my ($mode, $allowed) = @_;
- return grep $mode eq $_, @$allowed;
- }
- use List::MoreUtils qw( first_index );
- ...
- sub check_primary_mode {
- my ($mode, $allowed) = @_;
- return (0 <= first_index { $mode eq $_ } @$allowed);
- }
- my $primary_mode = $ARGV[0];
- primary_mode_check($primary_mode);
- sub primary_mode_check {
- my %program_modes; @program_modes{qw(create destroy)}=();
- my $selected_mode = shift;
- die RED "'$selected_mode' is not a valid program mode!n"
- unless exists $program_modes{$selected_mode};
- }
- use strict;
- use warnings;
- my $cmd = shift @ARGV;
- my @allowed = qw/ install uninstall check purge /;
- die "Cannot understand command" unless ( grep { $cmd eq $_ } @allowed );
- my @modes = ('create', 'destroy');
- my $regexp = join "|", @modes;
- if ($selected =~ /^(?:$regexp)z/) {
- print "Found program mode '$1'n";
- } else {
- die RED "'$selected' is not a valid program mode!n";
- }
Add Comment
Please, Sign In to add comment