my ($section, $code, %passwds); while (<>) { chomp; if (/^\[(.*?)\]$/) { $section = $1; next; } if ($section eq 'CODE') { $code = $_; } elsif ($section eq 'PASS') { my ($name,$pass) = split; $passwds{$name} = $pass; } }