我正在尝试编写一个使用getopts收集用户输入的脚本。我需要能够限制用户可以输入的值。我看到如何设置默认值但是,我一直无法找到任何设置允许值列表的方法......所以,
我正在尝试使用Config::Simple
从存储在文本文件中的值创建数组以用于验证。
ChangeCategories resolution, storm
#---create array from values.txt ChangeCategories
my @chg_cats = $cfg->param("ChangeCategories");
unlink $_ for @chg_cats;
#----grab user input via getopts
my $change_categories = $opt_c || die "Please enter a valid change category; @chg_cats";
The issue occurs when I attempt to do the pattern match, it is matching only the first value listed on the ChangeCategories line in the values.txt file.
#---pattern mathching code
my $valid_category;
chomp(@chg_cats);
foreach (@chg_cats) {
#@foreach my $line (@chg_cats) {
if(($_ =~ $change_categories) )
#if(($_ =~ m/$change_categories/) )
#if(($_ eq $change_categories) )
正如您所看到的,我已经尝试了许多构造来纠正这一点并确认每次都能得到正确的匹配结果。我不确定这是否与“chomping”有关,但是,我已经尝试了我能想到的每一种模式。我是Perl的初学者,非常感谢任何帮助....如果有人能告诉我更简单/更清洁的方式来实现这一结果,我将非常感激