Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re^2: Comparing MDB files.

by vinoth.ree (Monsignor)
on Jul 14, 2019 at 18:16 UTC ( #11102839=note: print w/replies, xml ) Need Help??

in reply to Re: Comparing MDB files.
in thread Comparing MDB files.


Sorry, I had different variable name, for people understanding I changed the variable names while posting the questing. I just updated them.

All is well. I learn by answering your questions...

Replies are listed 'Best First'.
Re^3: Comparing MDB files.
by haukex (Bishop) on Jul 14, 2019 at 18:21 UTC

    Thanks for informing us about your update, but how does this code even run? $co->hexdigest should either not be compiling, or be dieing with "Can't call method "hexdigest" on an undefined value" or "Can't locate object method "hexdigest" via package ...".

    Update: Please see Short, Self-Contained, Correct Example. Unfortunately, we can't diagnose the issues you might be having with your code if you don't provide something representative that we can run, and especially not if the code you post suffers from issues that don't even exist in the original code. Also made second sentence more accurate.

      Hi haukex

      I got your point. Actually I thought I was missing something in this compare function, while calculating md5 checksum. That is why I posted that function alone. Here is the full code.

      use strict; use warnings; use Digest::MD5; sub compare { my $pre_version =shift; my $new_version =shift; print("previous version: $pre_version\n"); print("new version : $new_version\n"); my $pre = Digest::MD5->new; open (PRE, "$pre_version"); $pre->addfile(*PRE); close(PRE); my $pre_digest = $pre->hexdigest; #print "pre digest=$pre_digest\n"; my $new = Digest::MD5->new; open (NEW, "$new_version"); $new->addfile(*NEW); close(NEW); my $new_digest = $new->hexdigest; #print "new digest=$new_digest\n"; if ($pre_digest eq $new_digest) { print("Equal\n"); return 0; } else { print("Not Equal\n"); return 1; } } compare($oldfile_path, $newfile_path);

      Update:variable name updated from $co to $new

      All is well. I learn by answering your questions...
        › perl -c Global symbol "$co" requires explicit package name (did you forget to +declare "my $co"?) at line 21.
        You're making so many mistakes because you write so much code. Less code results in less bugs.

        I would write no code at all and just use cmp from Gnu diffutils, but if you have to to do in Perl:

        use File::Compare qw(compare); my $r = compare 'filename1', 'filename2'; if ($r == 0) { print 'same'; } elsif ($r == 1) { print 'different'; } else { die "error in comparison: $!"; }
        Ö but if you have to to use non-core modules:
        use Digest::MD5 qw(md5); use File::Slurper qw(read_binary); if (md5(read_binary('filename1')) eq md5(read_binary('filename2'))) { print 'same'; } else { print 'different'; }

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2020-09-19 03:42 GMT
Find Nodes?
    Voting Booth?
    If at first I donít succeed, I Ö

    Results (114 votes). Check out past polls.