【发布时间】:2018-09-17 01:28:49
【问题描述】:
假设我在一个文件中有一些记录:
ID Name Age Salary Phone
1 Ram 60 100 123456789000
2 tam 30 200 7436674776
3 sam 20 300 3734837837
4 kim 30 400 2
如何显示所有没有有效电话号码的人的详细信息?
这就是我所做的:
open(f, <Users);
my @col = map { (split)[4] } split /\n/, f; # Phone numbers are stored in an array
foreach my $i ( @col ) {
if ( grep -v /[[:digit:]]{10}/, @col ) {
print "grep success\n";
print "$i";
}
}
但是我遇到了很多错误。
我还有其他问题,比如如果这个人的经验 > 20 年,我如何将薪水修改 15%?
【问题讨论】:
-
什么是有效的电话号码?只有 10 位数字,没有分隔符?根据您提供的数据,不可能知道某人有多少经验——我们只有他们的年龄!
-
这段代码严重损坏,甚至无法编译。
-
“请告诉我正确的语法...”不,那是你的工作。 perl.org/learn.html
-
将
use warnings; use strict;添加到您的代码中,然后了解如何正确读取文件perldoc.perl.org/perlopentut.html