I am trying to execute below script but not getting the desired output. it seems that he still retains the old value and continues to concatenate it.
./test.pl -v v10, v11, v12
Actual result => 'v10', 'v11', 'v10', 'v12', 'v10', 'v11', 'v10'
Expected Result => 'v10', 'v11', 'v12'
Help solve the problem?
#!/usr/bin/perl use strict; use warnings; use Getopt::Long; my ($versionFlag,$finalVersionList); sub validateInputAndFilter { my ($passedVersionList) = @_; $finalVersionList =""; my @versionList = split(",",$passedVersionList); foreach my $ver (@versionList) { if($ver =~ m/^v[0-9][0-9]$/) { $finalVersionList .= "'$ver',$finalVersionList"; } else { print "\nWARNING: Passed version *** $ver *** is NOT in expected format...skipping...\n"; } } $finalVersionList =~ s/\,$//; print "\n\nfinalVersionList => $finalVersionList\n\n"; } GetOptions('v|version=s' => \$versionFlag) || die "Please pass version list separated by comma"; if(defined $versionFlag) { &validateInputAndFilter("$versionFlag"); } else { die "Please pass version list separated by comma"; } exit 0;
source share