Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Comparing two text files

by Lancy (Initiate)
on Sep 07, 2011 at 07:19 UTC ( [id://924549]=perlquestion: print w/replies, xml ) Need Help??

Lancy has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: Comparing two text files
by GrandFather (Saint) on Sep 07, 2011 at 07:44 UTC

    It may be urgent for you, but that doesn't make it urgent for us. However, if you used a sensible title, took the time to format your node correctly, and provided a small self contained script showing the issue you are having you'd generally get pretty prompt response.

    Laziness is much better served by taking the time to do a good job the first time rather than rehashing a "quick and dirty" version over and over until you either run out of time or stamina or it ends up working just well enough to solve the immediate problem.

    True laziness is hard work
Re: Comparing two text files
by Anonymous Monk on Sep 07, 2011 at 07:43 UTC

    s/// is the substitution operator, generally not used for comparison, you want m// the match operator

    #!/usr/bin/perl -- #~ 2011-09-07-00:31:00 by Anonymous Monk #~ perltidy -csc -otr -opr -ce -nibc -i=4 use strict; use warnings; use autodie; # dies if open/close... fail Main(@ARGV); exit(0); sub Main { if ( @_ == 3 ) { NotDemoMeaningfulName(@_); } else { Demo(); print Usage(); } } ## end sub Main sub NotDemoMeaningfulName { my ( $inputOne, $inputTwo, $outputFile ) = @_; open my ($inOne), '<', $inputOne; open my ($inTwo), '<', $inputTwo; open my ($outFh), '>', $outputFile; while ( not eof $inOne ) { my $onel = <$inOne>; my $twol = <$inTwo>; for ( $onel, $twol ) { chomp; $_ = $1 if /,\s*([^,]+)$/; } print $outFh "{$onel}{$twol}\n"; } ## end while ( not eof $inOne ) close $inOne; close $inTwo; close $outFh; } ## end sub NotDemoMeaningfulName sub Usage { <<"__USAGE__"; $0 $0 dataFile1 dataFile2 outputFile perl ${\__FILE__} perl ${\__FILE__} dataFile1 dataFile2 outputFile __USAGE__ } ## end sub Usage sub Demo { my ( $Input, $Input2, $WantedOutput ) = DemoData(); NotDemoMeaningfulName( $Input, $Input2, \my $Output ); print $Output, "\n\n"; require Test::More; Test::More::is( $Output, $WantedOutput, ' NotDemoMeaningfulName Works Aas Designed' ); Test::More::done_testing(); } ## end sub Demo sub DemoData { my $One = <<'__One__'; Optometrists and Opticians (simple) Regulations, Cap. 500A, RG 2 __One__ my $Two = <<'__Two__'; OPTOMETRISTS AND OPTICIANS (SIMPLE) REGULATIONS, Cap. 500A, Regulation + 2 __Two__ my $Three = <<'__Two__'; {RG 2}{Regulation 2} __Two__ return \$One, \$Two, $Three; } ## end sub DemoData __END__ $ prove pm.924549.pl pm.924549.pl .. ok All tests successful. Files=1, Tests=1, 1 wallclock secs ( 0.12 usr + 0.06 sys = 0.19 CPU +) Result: PASS $ perl pm.924549.pl {RG 2}{Regulation 2} ok 1 - NotDemoMeaningfulName Works Aas Designed 1..1 pm.924549.pl pm.924549.pl dataFile1 dataFile2 outputFile perl pm.924549.pl perl pm.924549.pl dataFile1 dataFile2 outputFile

    Your title is not very effective ( see How do I compose an effective node title?, Markup in the Monastery ) and remember, "Your 'urgent need' is not our emergency."

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2024-04-24 17:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found