in reply to Re^3: compare individual string with complete array
in thread compare individual string with complete array

apologies for the re posting and incorrect process,I have read the answer but the scenario is different i have on fixed array with standard data and repeating variable ($db_description) to compare with the array. The comparing will be done for multiple choice . Example:- The description variable value is the one to compare in array.
  • Comment on Re^4: compare individual string with complete array

Replies are listed 'Best First'.
Re^5: compare individual string with complete array
by thanos1983 (Parson) on May 31, 2017 at 12:49 UTC

    Hello rohan_532,

    I am sorry but I am not able to understand what you mean.

    I will try guess your way of thinking and you can verify or falsify or correct me if this is what you are looking for.

    Based on your answer Example:- The description variable value is the one to compare in array., let's create a scenario with sample data something that YOU should have done so we will be able to replicate the problem.

    #!usr/bin/perl use strict; use warnings; # Variables that I will extract from the escel sheet my @steps_name = ("1-2 Steps", "5-7 Steps", "8-10 Steps", "11-15 Steps +"); #regex that I want to match against foreach (@steps_name) { print "Matched with ".$_."\n" if /(?:\b8-10 Steps\b|\b11-15 St +eps\b)/; } __END__ $ perl test.pl Matched with 8-10 Steps Matched with 11-15 Steps

    You can combine regular expression if, if this is what you are looking for. Provide us a sample of expected input and desired matched output. It does not have to be compiling code, produce a pseudo code.

    Update: Apologies if I sounded a bit harsh but we need to know what exactly you are looking for, so we can help you as soon as possible. If your question is still not answered please provide us more information.

    Hope this helps.

    Seeking for Perl wisdom...on the process of learning...not there...yet!

      Thank you for the time and help receiving , I am providing a sample pseudo code to get clear idea the $description$i is to be compared every time with the @steps_name array

      my @db_description=("MOVE 3-4 STEPS TO GB FIXTURE","WITHIN REACH TO CH +ECK","GET BEAM","PUSH/PULL ( >= 30 CM)","BEAM 2-3 TIMES","MOVE 8-10 S +TEPS TO HOIST"); my @steps_name = ("1-2 Steps", "5-7 Steps", "8-10 Steps", "11-15 Steps +"); for(my $i=0;$i<@db_description;$i++) { if (grep { /(?i)\Q$db_description[$i]\E/ } @steps_name) + { print "<br><h1>Element '$db_description[$i]' foun +d " ; } else { print "<br>$db_description[$i] not found </br>" } }

      thank you for the patience

      update - i want description array to iterate and check in @steps_name array every time for that i am using grep { /(?i)\Q$db_description$i\E/ } @steps_name.

        You're looking for an element of the  @steps_name array within each element of the  @db_description array. Try something like:

        c:\@Work\Perl\monks>perl -wMstrict -le "my @db_description=( 'MOVE 3-4 STEPS TO GB FIXTURE', 'WITHIN REACH TO CHECK', 'GET BEAM', 'PUSH/PULL ( >= 30 CM)', 'BEAM 2-3 TIMES', 'MOVE 8-10 STEPS TO HOIST', ); ;; my @steps_name = ('1-2 Steps', '5-7 Steps', '8-10 Steps', '11-15 Step +s'); ;; for (my $i = 0; $i < @steps_name; $i++) { if (grep { /(?i)\Q$steps_name[$i]\E/ } @db_description) { print qq{'$steps_name[$i]' FOUND}; } else { print qq{'$steps_name[$i]' not found}; } } " '1-2 Steps' not found '5-7 Steps' not found '8-10 Steps' FOUND '11-15 Steps' not found

        Update: As a general stylistic note, I would recommend a simpler Perl-style for-loop rather than a C-style loop:

        c:\@Work\Perl\monks>perl -wMstrict -le "my @db_description=( 'MOVE 3-4 STEPS TO GB FIXTURE', 'WITHIN REACH TO CHECK', 'GET BEAM', 'PUSH/PULL ( >= 30 CM)', 'BEAM 2-3 TIMES', 'MOVE 8-10 STEPS TO HOIST', ); ;; my @steps_name = ('1-2 Steps', '5-7 Steps', '8-10 Steps', '11-15 Step +s'); ;; for my $s_name (@steps_name) { if (grep { /(?i)\Q$s_name\E/ } @db_description) { print qq{'$s_name' FOUND}; } else { print qq{'$s_name' not found}; } } " '1-2 Steps' not found '5-7 Steps' not found '8-10 Steps' FOUND '11-15 Steps' not found
        Not having to worry about index increments, array accesses, off-by-one errors, etc., is helpful.


        Give a man a fish:  <%-{-{-{-<

        Hello rohan_532,

        Now this is a proper explanation and example that we can work with ;) (Good Job :D)

        Monk AnomalousMonk has already provide you 2 answers so I assume your question can be considered closed. :D

        Let us know if you have any further questions. :D

        Seeking for Perl wisdom...on the process of learning...not there...yet!