Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: using grep to search an array

by alicatserver (Initiate)
on May 23, 2011 at 20:46 UTC ( [id://906364]=note: print w/replies, xml ) Need Help??


in reply to Re: using grep to search an array
in thread using grep to search an array

Here's the data that I should have added earlier...
Also, the goal is to print the matching 7 digit line. If I found 7770005 I would get the full line from fileB.
(And I change the grep line to a push)
push(@grepnames,grep/$testit/,@fileb);

fileA:
7770005
7770012

fileB:
7770001 ABA BANKING JOURNAL.RECORD # = b12822826. OK
7770002 THE ABNF JOURNAL.RECORD # = b13671558. ok
7770003 ACADEMIC EXCHANGE QUARTERLY : AEQ.RECORD # = b14618114. ok
7770004 THE ACADEMY OF MANAGEMENT REVIEW.RECORD # = b12691070. ok
7770005 THE ACCOUNTING REVIEW.RECORD # = b13123269. ok
7770006 "ACCOUNTING, ORGANIZATIONS AND SOCIETY.RECORD " # = b15123236. ok
7770007 "ACTA CRYSTALLOGRAPHICA. SECTION A: CRYSTAL PHYSICS, DIFFRACTION,
7770008 ADAPTED PHYSICAL ACTIVITY QUARTERLY : APAQ.RECORD # = b13274272. ok
7770009 ADMINISTRATION IN SOCIAL WORK.RECORD # = b12754225. ok
7770010 ADMINISTRATIVE SCIENCE QUARTERLY.RECORD # = b13123415.
7770011 ADOLESCENCE.RECORD # = b13171288. ok
7770012 ADVANCES IN NURSING SCIENCE.RECORD # = b12795896. ok

Replies are listed 'Best First'.
Re^3: using grep to search an array
by John M. Dlugosz (Monsignor) on May 23, 2011 at 20:53 UTC
    OK, so it is supposed to be a prefix. That means the \n at the end of $testit is getting in the way of letting it match.

    Use chomp inside the loop.

      Chomp worked!! thanks
        I made an improvement to my script and I thought Id post it so that others can benefit from it.
        This rewritten version gives me two files... items that were "found" when searching the allper array and items that were "not found".
        (PS: the variables were renamed)

        foreach (@raw_data)
        {
        $item=$_;
        chomp($item);
        if (grep/$item/,@allper)
        {
        push(@found,grep/$item/,@allper);
        }
        else
        {
        push(@notfound,$item);
        }
        }

        open RESULT, ">_found_items.txt";
        print RESULT "@found\n\n";
        close(RESULT);

        open noRESULT, ">_doesnotexist.txt";
        print noRESULT "@notfound\n\n";
        close(noRESULT);

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://906364]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2024-04-25 12:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found