Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re^4: partial match between 2 files

by lakssreedhar (Acolyte)
on Dec 05, 2012 at 10:53 UTC ( #1007260=note: print w/replies, xml ) Need Help??

in reply to Re^3: partial match between 2 files
in thread partial match between 2 files

the code is working fine for those 2 files but if i am adding more words to file 1 which does not match to any of the file2 words then an error is occuring like Use of uninitialized value $s2 in chomp at line 9, <$fh2> line 10. Use of uninitialized value $s2 in bitwise xor (^) at line 11, <$fh2> line 10. Use of uninitialized value $s2 in print at line 13, <$fh2> line 10

Replies are listed 'Best First'.
Re^5: partial match between 2 files
by Kenosis (Priest) on Dec 05, 2012 at 19:56 UTC

    The script assumes the same number of words in each file, since you showed the same number words in the two different word sets. Your next step is to make a few changes to adapt this script to handle files with different numbers of words.

      I am comparing two files using hash and then checking each character by character.But even now when the position of the words are altered or some words are deleted from either files the error uninitialised value is coming

        The script that you write needs to insure that only matching words are compared for difference. You can place the code that inserts a "+" at the first string difference position into a subroutine that can be called from anywhere within your script. For example:

        use strict; use warnings; my $string1 = 'amayaM'; my $string2 = 'amayamAn'; my $result = firstStrDiff( $string1, $string2 ); print $result, "\n"; sub firstStrDiff { my ( $s1, $s2 ) = @_; ( $s1 ^ $s2 ) =~ /[^\x00]/; substr( $s2, $-[0], 0 ) = '+' if defined $-[0]; return $s2; }



        This can help you focus on just the remaining code that aligns the words you want send to this subroutine.

        Hope this helps!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1007260]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2017-03-26 21:30 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (315 votes). Check out past polls.