in reply to Fetch data between markers

You weren't specific as to whether you wanted the start marker to be date or user. I've assumed here that it's user, and that you only care about the associated data:
use strict; use warnings; my $user = 'other'; my $val; while (<DATA>) { if (m/^\d+\/\d+\/\d+ \d+:\d+:\d+ user=$user func\(/) { $val .= $_ while ($_ = <DATA>) !~ /\) #end trans#/; last; } } print $val; __DATA__ 2005/06/06 12:00:00 user=me func( blah blah blah blah blah blah ) #end trans# 2005/06/06 12:01:00 user=other func( blah blah blah blah blah ) #end trans#