作者marsline (火星线上)
看板Perl
标题[问题] Algorithm::Diff的使用
时间Thu Mar 11 16:08:40 2010
想请教一下,我使用了diff function,但是我不知要如何取得如网页上的范例结果。
我试了print @diffs or $diffs都是回传给我记忆体位址。先谢谢大家的帮忙。
(抱歉我还是个新手…)
下列是我的程式码:
#!/usr/local/bin/perl -w
use Algorithm::Diff qw(diff sdiff LCS traverse_sequences traverse_balanced);
@str1 = split(//,"abcehjlmnp");
@str2 = split(//,"bcdefjklmrst");
@lcs = LCS(\@str1, \@str2);
@diff = diff(\@str1, \@str2);
print "LCS : @lcs\n";
print "Diff: @diff\n";
回传结果:
LCS : b c e j l m
Diff: ARRAY(0x8230ac8) ARRAY(0x8230b34) ARRAY(0x8230c48) ARRAY(0x8230cb4)
ARRAY(0x8230d2c)
想要的结果:(如网页上的范例结果)
[
[ [ '-', 0, 'a' ] ],
[ [ '+', 2, 'd' ] ],
[ [ '-', 4, 'h' ] ,
[ '+', 4, 'f' ] ],
[ [ '+', 6, 'k' ] ],
[ [ '-', 8, 'n' ],
[ '-', 9, 'p' ],
[ '+', 9, 'r' ],
[ '+', 10, 's' ],
[ '+', 11, 't' ],
]
]
参考网页:
http://search.cpan.org/~nedkonz/Algorithm-Diff-1.15/lib/Algorithm/Diff.pm#diff
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.155.17
※ 编辑: marsline 来自: 140.118.155.17 (03/11 16:10)