use strict; my $input = "zh-xcin-2.3.04.tgz   chinese input utility for X[ FTP Site 1 ][ FTP Site 2 ]"; my %data; my @fields = split '', $input; shift @fields; foreach my $field (@fields) { ($data{fileurl}, $data{filename}, $data{description}, $data{ftp1}, $data{ftp2}) = $field =~ m#^(.*?)   (.*?)\[ .*? ]\[ .*#; print "$2 == $3\n"; }