Since I don't have sybase, I'll have to set up a test environment in SQLite instead.
I had figured you already had the data in memory, but I guess not.
#!/usr/bin/perl
# http://perlmonks.org/?node_id=1171182
use strict;
use warnings;
use DBI;
my $dbfile = '/tmp/db.1171182';
unlink $dbfile;
my $db = DBI->connect_cached(
"DBI:SQLite(RaiseError=>1,PrintError=>0):$dbfile");
$db->do('create table testing (one text, two text, color text)');
$db->begin_work;
while( <DATA> )
{
$db->do('insert into testing (one, two, color) values (?, ?, ?)',
{}, split ' ');
}
$db->commit;
my $sth = $db->prepare('select one, two, color from testing');
$sth->execute;
$_ = '';
while( my @row = $sth->fetchrow_array )
{
$_ .= "@row\n";
}
1 while s/^(.*\n)((?:.*\n)*)\K\1//m;
1 while s/^(\S+ \S+ ).*\K\n((?:.*\n)*?)\1(.*\n)/:$3$2/m;
print;
__DATA__
A1 abc yellow
A1 abc yellow
B1 xyz green
A2 cde red
A1 abc green
A2 cde yellow
A1 abc blue
|