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

Hello! I am trying to use this module Text::ParagraphDiff. It basically compares two documents and shows you what was modified from the old to the new...better for manuscripts than other text difference modules for code. It works great as explained in the instructions, passing in an old and a new file like so:
#!/usr/bin/perl -w use strict; use Text::ParagraphDiff; print text_diff('/somepath/oldfile.txt','/somepath/newfile.txt');
but I would like to pass in text as a variable, like from a database instead. I can't seem to figure out where to make changes in the module so I can do this. Any help would be appreciated! The code from the module is here:

cpan copy of module ParagraphDiff.pm

THANKS!


Michael Jensen
http://www.inblosam.com

Replies are listed 'Best First'.
Re: ParagraphDiff Module, modify input type?
by duff (Parson) on Dec 04, 2003 at 17:25 UTC

    You must not have read the documentation for that module too closly because it looks like it already does what you want! In fact, here's an example from the synopsis:

    print text_diff(["old"], ["new"]); # T-Diff 2 plain strings (a FAQ +)
      Okay, that does work! I can't believe I missed that. That is my life with reading documentation though.

      So now my question is, how do I make those variables instead of just plain text?

      #!/usr/bin/perl -w use strict; use Text::ParagraphDiff; my $old = 'this is the oooooooold textt'; my $new = 'this is the new text'; print text_diff(["$old"], ["$new"]);


      This doesn't work and gives you a bunch of errors:
      Use of uninitialized value in string eq at /Library/Perl/5.8.1/Text/Pa +ragraphDiff.pm line 197. Use of uninitialized value in string eq at /Library/Perl/5.8.1/Text/Pa +ragraphDiff.pm line 125. Use of uninitialized value in string eq at /Library/Perl/5.8.1/Text/Pa +ragraphDiff.pm line 125. Use of uninitialized value in string eq at /Library/Perl/5.8.1/Text/Pa +ragraphDiff.pm line 258. Use of uninitialized value in string eq at /Library/Perl/5.8.1/Text/Pa +ragraphDiff.pm line 258. Use of uninitialized value in concatenation (.) or string at /Library/ +Perl/5.8.1/Text/ParagraphDiff.pm line 265.

      There must be a way to do that because I am afraid that some of my text might break that because some of it is 20 pages long and has all sorts of paragraphs, breaks, etc.

      THANKS!