Warum möchtest du split verwenden? Match ist hier bequemer:
my $str = '2014-04-23 14:66:87,666 INFO - HEAP - [USAGE: 1948.3, FREE: 1400, MAX: 3597.5]; NON-HEAP - [USAGE: 611.9, FREE: 52.2, MAX: 1776.0]; CLASSES - [Loaded: 67007, Unloaded: 3237, Left: 63770]; THREADS - [Count: 342]'; my ($freeValue) = $str =~ /(?<=FREE: )(\d+(?:\.\d+)?)/; print $freeValue,"\n";
Ausgabe:
1400