in reply to passing data using MIME::Lite

You're not actually returning any useful information from sql().

how about this:

sub sql { $sqlCount->execute or die "Can't execute query"; my $data; while (@output=$sqlCount->fetchrow_array) { $data .= "data: @output \n"; } $sqlCount->finish(); $dbcon->disconnect(); return $data; } # .... my $msg = MIME::Lite->new( From=>'', To =>'', Subject=>'', Data => sql() );
It's still messy, though.

Also see perlsub