这是我的最终作业的另一组
这是我的最终任务。
我得到了一个固定的平面文件,下面有员工列表。
Employee (20 bytes) title (20 bytes) Dept (13) phone (14)
example
ABAD, RACHEL PR CLERK ENGINEERING ENGR DIST OFC (818) 374-7538
ABDULLAH, SOLOM SAFETY ENGR PRESS VES INSPECTIO (818) 374-9930
ABEL, DARLA SR SAFETY ENG ELEVATORSINSPECTION (213) 202-9839
ABRAHAM, TERESA SR MGMT ANALYST II RES MGMT CUS (213) 482-6766
ABRAMYAN, DANIEL INACTIVE NONE NONE
ABREU, JAMES BUILD MECH INSPECTORCODE ENFCMNT (818) 374-9862
ACEVEDO CASTRO, MECH ENGRG ASS ENGINEERING (213) 202-9902
ACOSTA, JESUS GEOTECH ENGINEER II INSPECTION GRADING (213) 482-6967
AGHAZARIAN, SAKO SRBUILD INSPECTOR INSPECTION BLDG(213) 482-0372
第二个文件仅包含电话号码列表,这些电话号码恰好在员工列表列表中。
(818) 374-9930
(213) 202-9902
(213) 482-0373
(818) 374-7538
如果有匹配项,我需要提取并打印整行(到另一个文件(,但现在我正在测试检查以确保能够读取哈希。(已终止.dat(
!/usr/bin/perl
use strict;
use warnings;
open PHONELIST, "< PHONELIST.TXT" or die "could not open PHONELIST.TXTn";
my $phone_no;
while (<PHONELIST>) {
chomp;
$phone_no->{$_} = 1;
print "$phone_non";
}
close PHONELIST;
open EMPRECORD, "< EMPRECORD.TXT" or die "could not open EMPRECORD.TXTn";
while (<EMPRECORD>) {
chomp;
my ($phoneKey) = ($_);
if (defined $phone_no->{$phoneKey}) {
print STDOUT "$_n";
}
}
close EMPRECORD;
我无法创建哈希或数组来读取和比较两个文件并从列表中删除已终止的帐户。请告知我做错了什么。
在您的代码中,您正在将员工列表中的整行读取到 $phoneKey
变量中。然后,您需要提取实际电话号码以进行搜索。
我建议添加:
$phoneKey =~ s/.*(([0-9]+) [0-9]+-[0-9]+)$/$1/;
或类似的东西。
实际上,查看您的规格...
$phoneKey = substr($_, -13);
可能是更好的选择。