Given the two previous replies, I would recommend that you take the "grep" part out of the command line pipe, and do the "grepping" in the perl script instead -- apparently, there is a command-line option for tcpdump to turn off output buffering, but I'm not aware of any such option for the standard "grep" utility. Since it's so easy to accomplish the same thing within Perl, simplify the command line.
update: in case that wasn't clear, what I mean is:
while (<TCPDUMP>) {
next unless /GET/;
...
}