【发布时间】:2018-10-17 18:40:45
【问题描述】:
我正在处理一项任务,该任务要求我阅读一堆姓名和电话簿,并创建一个类似于手机拨号器的搜索。如果号码仅由 xxx-xxxx 组成,则应附加区号。我成功地挑选出由 xxx-xxxx 组成的字符串,但是当我尝试打印该字符串时,我只得到一个空行。当我调用上一个索引时,它会成功打印出名称。
foreach my $i (0 .. $#phoneBook) {
my @splitIndex = split(':', $phoneBook[$i]); #index 0 and 1 of splitIndex
#If the length of the number is too short append the 701 before
if($splitIndex[1] =~ s/^(\d{3})-(\d{4})//) {
print "$splitIndex[1]\n";
}
foreach my $j (0 .. $#splitIndex) {
#print "$splitIndex[$j]";
}
if(($splitIndex[0] =~ /$searchValue/i) || ($splitIndex[1] =~ /$searchValue/i)) {
#print "Found\n";
} else {
#print "Not Found $searchValue\n";
}
}
在我的文件中,文本 John:888-8888 保存在我的 phoneBook 数组中。但是当我调用 splitIndex[1](电话号码)时,我得到一个空行。
【问题讨论】:
-
提示:
for/foreach my $entry (@phoneBook)更易于阅读且不易出错。