use warnings; use strict; use Data::Dumper; while () { if (/prepare_cached\('/ .. /^'\)/) { s/.*prepare_cached\('//; s/^'\).*//; warn $_; } } __DATA__ my $data = qq| T <- prepare_cached('SELECT trip_id, rate, expires FROM trip_exchange_rates WHERE trip_id = ? ')= ( DBIx::ContextualFetch::st=HASH(0x9371f4) ) [1 items] at DBI.pm line 398 T <- FETCH('Active')= '' at DBI.pm line 1139 T <- FETCH('Taint')= 1 at ContextualFetch.pm line 50 <- STORE('Taint', 0)= 1 at ContextualFetch.pm line 51 <- execute('183207')= '0E0' at ContextualFetch.pm line 52 T <- STORE('Taint', 1)= 1 at ContextualFetch.pm line 53 T <- FETCH('NAME_lc')= [ 'trip_id' 'rate' 'expires' ] at DBI.pm line 1140 T <- bind_columns(SCALAR(0x40f0128), SCALAR(0x40f01f4), ...)= 1 at DBI.pm line 1140 T <- fetchrow_arrayref= undef at ContextualFetch.pm line 60 T <- FETCH('Active')= 1 at DBI.pm line 326 T <- ping= 1 at DBI.pm line 326 T <- prepare_cached('INSERT INTO trip_exchange_rates (rate, currency, trip_id, expires) VALUES (?, ?, ?, ?) ')= DBIx::ContextualFetch::st=HASH(0x40ec1c4) at DBI.pm line 398 T <- FETCH('Taint')= 1 at ContextualFetch.pm line 50 <- STORE('Taint', 0)= 1 at ContextualFetch.pm line 51 <- execute('0.638315', 'USD', ...)= 1 at ContextualFetch.pm line 52 T <- STORE('Taint', 1)= 1 at ContextualFetch.pm line 53 T <- FETCH('Active')= 1 at DBI.pm line 326 T <- ping= 1 at DBI.pm line 326 T <- prepare_cached('SELECT trip_id, engine FROM trip_engine WHERE trip_id = ? ')= ( DBIx::ContextualFetch::st=HASH(0x40efc18) ) [1 items] at DBI.pm line 398 T <- FETCH('Active')= '' at DBI.pm line 1139 T <- FETCH('Taint')= 1 at ContextualFetch.pm line 50 <- STORE('Taint', 0)= 1 at ContextualFetch.pm line 51 <- execute('183207')= '0E0' at ContextualFetch.pm line 52 T <- STORE('Taint', 1)= 1 at ContextualFetch.pm line 53 T <- FETCH('NAME_lc')= [ 'trip_id' 'engine' ] at DBI.pm line 1140 T <- bind_columns(SCALAR(0x40f602c), SCALAR(0x40f6050))= 1 at DBI.pm line 1140 T <- fetchrow_arrayref= undef at ContextualFetch.pm line 60 T <- FETCH('Active')= 1 at DBI.pm line 326 T <- ping= 1 at DBI.pm line 326 T <- prepare_cached('INSERT INTO trip_engine (trip_id, engine) VALUES (?, ?) ')= DBIx::ContextualFetch::st=HASH(0x40f5d44) at DBI.pm line 398 T <- FETCH('Taint')= 1 at ContextualFetch.pm line 50 <- STORE('Taint', 0)= 1 a|; while($data =~ /prepare_cached\('(.+?)'\)= DBIx/gs) { print "(--> $1 <--\n)"; }