這是我的另一組最終作業使用一個鍵(phone_no)從兩個平面文件中提取數據並打印或清除匹配記錄
這是我的最後作業。
我已經給了一個固定的平面文件withemployee列表下面。
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
如果有比賽,我需要提取和打印出整行(到另一個文件),但現在我測試檢查,以確保我能夠讀取哈希值。 (terminated.dat)
!/usr/bin/perl
use strict;
use warnings;
open PHONELIST, "< PHONELIST.TXT" or die "could not open PHONELIST.TXT\n";
my $phone_no;
while (<PHONELIST>) {
chomp;
$phone_no->{$_} = 1;
print "$phone_no\n";
}
close PHONELIST;
open EMPRECORD, "< EMPRECORD.TXT" or die "could not open EMPRECORD.TXT\n";
while (<EMPRECORD>) {
chomp;
my ($phoneKey) = ($_);
if (defined $phone_no->{$phoneKey}) {
print STDOUT "$_\n";
}
}
close EMPRECORD;
我無法創建哈希或數組來讀取和比較兩個文件並從列表中刪除已終止的帳戶。請告知我做錯了什麼。
我喜歡提取而不是修改,並強制使用數字而不是使用'+'來引起錯誤。 'm /(\(\ d {3} \)\ d {3} \ - \ d {4})/;'then' $ phoneKey = $ _;' – PeterT 2014-12-02 06:47:43
另外,' - >'你可以簡單地使用$ phone_no {$ phoneKey}。 ' - >'意味着一個解除引用(這是在那裏,但在語境上在語義上具有誤導性)。 – PeterT 2014-12-02 06:50:17