Re: how are these two strings not equal?

[email protected] ("Jenda Krynicky")
Newsgroups perl.beginners
Message-ID <[email protected]>
From: Kev <[email protected]>
> Hi everyone,
> 
> I'm having a problem that may either lie in PostgreSQL or in perl, and
> I'm not sure which.  I originally posted this on pgsql.general, and
> only heard back that someone else has this problem too.  I'm running
> perl 5.10 on Windows 2003 Server, although I believe the version
> embedded in pgsql at the moment is still 5.8.
> 
> The basic problem is that I generate the code of a function, and then
> want to check whether this is the same code stored in the database or
> not, but diff shows "differences" where there aren't any (or shouldn't
> be any, since nothing in the database has changed), and worse, perl's
> 'eq' and 'ne' operators agree with diff that the strings are
> different.  But at least visually the two texts being compared are
> identical, and if I copy and paste the results from Firefox into
> TextPad and then run "compare files", it says they're identical.

Run the two strings through

sub nicehex {
  my $s = $_[0];
  my $hex = unpack 'H*', $s;
  $s =~ tr/\x00-\x0A/./;
  $hex =~ s/(..)/$1 /g;

  my @hex = ($hex =~ /(.{47}) /g);
  my @s = ($s =~ /(.{16})/g);

  my $res = '';
  while (@s) {
    $res .= shift(@hex) . '   |' .shift(@s) . "\n";
  }
  return $res;
}

and compare (visualy) the results. Maybe some spaces are tabs or vice 
versa. See what are the different characters.

Space: 20
Tab: 09
CR: 0d
LF: 0a
Nonbreakable space: a0

HTH, Jenda
===== [email protected] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
	-- Terry Pratchett in Sourcery
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.