rendered paste bodyfunction parse_ini($ini){ //my @lines = <INIFILE>; my @lines = <INIFILE>; my $dat; my $cur; foreach my $line (@lines) { if (/^\s*\[([^\]]+)\]\s*$/) { $cur = $1; } elsif (/^\s*([^=]+)=(.+?)\s*$/) { $dat->{$cur}->{$1} = $2 } } $lines = file($ini); $x = count($lines); $sections = array(); for ( $i = 0; $i < $x; $i++ ) { if ( preg_match("/^\s*\[([^\]]+)\]\s*$/", $lines[$i], $m) ) { $section = $m[1]; $sections[$section] = array(); } else if ( preg_match("/^\s*([^=]+)=(.+?)\s*$/", $lines[$i], $m) ) { $sections[$section][$m[1]] = $m[2]; } } print_r($sections);}