在perl中连接字符串时出现意外结果
发布时间:2020-12-16 06:23:05 所属栏目:大数据 来源:网络整理
导读:我试图执行下面的脚本,但没有获得所需的输出.它似乎仍然保留旧的价值并保持连接. ./test.pl -v v10,v11,v12 实际结果= ‘V10’,‘V11’,‘V10’,‘V12’,‘V10’ 预期结果= ‘V10’,‘V12’ 你能帮忙解决这个问题吗? #!/usr/bin/perluse strict;use warning
我试图执行下面的脚本,但没有获得所需的输出.它似乎仍然保留旧的价值并保持连接.
./test.pl -v v10,v11,v12 实际结果=> ‘V10’,‘V11’,‘V10’,‘V12’,‘V10’ 预期结果=> ‘V10’,‘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 "nnfinalVersionList => $finalVersionListnn"; } 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 .= "'$ver',$finalVersionList"; 应该只是: $finalVersionList .= "'$ver,'"; $foo.= $bar;相当于: $foo = $foo . $bar; 所以,$finalVersionList.=“’$ver’,$finalVerionList”;相当于: $finalVersionList = $finalVersionList . "'$ver',$finalVersionList"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读