Perl _excells_ at looking for patterns in large amounts
of data. There's nothing Perl's better at, and no
language that's better at it.
The one thing you mention that's moderately hard in Perl
is the GUI. However, your description of the problem
makes it sound as if the data manipulation is going to
be the bulk of the app and the GUI just has to let the
user tell the program what data to manipulate and what
to do with it, and may be fairly simple. If that is
the case, Perl is an excellent choice for this project.
$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$ ;->();print$/