use IO::Socket; my $ticker = IO::Socket::INET->new( PeerAddr => 'web6...', PeerPort => 8081 ); while ( my $msg = read_record( $ticker ) ) { print "$msg->{msgtext}\n"; } sub read_record { # Reads a single record from the streaming ticker my $sock = shift; local $/ = ""; my %record = map( /^([^=]+)=?([^\r\n]*)/ ? ( $1, $2 ) : (), readline( $sock ) =~ /([^\r\n]+)/g ); for ( values %record ) { s/\\\\/\\/g; s/\\\r/\r/g; s/\\\n/\n/g; } }