我想执行下面的脚本,但没有得到所需的输出。它似乎仍然保留了旧的价值并保持连结。意外的结果,而连接字符串中的perl
./test.pl -v V10,V11,V12
实际结果> 'V10', 'V11', 'V10', 'V12', 'V10', 'V11','V10 '
预期结果=> 'V10',' V11' , 'V12'
可以请您帮助解决问题?
#!/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;
你或许应该避免使用'$ finalVersionList'作为一个全局变量时,你可以这么容易通过在子文件中使用'return $ finalVersionList'来保持它的词法。 – TLP 2013-04-23 17:17:20