#!/usr/bin/perl

use strict;
use warnings;

my $input = "DATE=20130411140806.384553 HOST=somehost PROG=someserver NL.EVNT=FTP_INFO START=20130411140806.384109 USER=someuser FILE=/extended_path/Wallpapers Folder.ico BUFFER=98720 BLOCK=262144 NBYTES=0 VOLUME=/ STREAMS=2 STRIPES=1 DEST=[0.0.0.0] TYPE=STOR CODE=226";

print "$input\n";
$input =~ s/[ ](?!\S+=)/_/g;
print "\nReplacing:\n$input\n";


$input = "DATE=20130411140806.384553 HOST=somehost PROG=someserver NL.EVNT=FTP_INFO START=20130411140806.384109 USER=someuser FILE=/extended_path/Wallpapers Folder.ico BUFFER=98720 BLOCK=262144 NBYTES=0 VOLUME=/ STREAMS=2 STRIPES=1 DEST=[0.0.0.0] TYPE=STOR CODE=226";
print "\nMatching:\n";
while($input =~ m/(\S+)=((?:\S|[ ](?!\S+=))+)/g)
{
    print "Match found:\n  Key: $1\n  Value: $2\n";
}