/cgi-bin/data.lib
$datadir = "/home/friendnet/data"; sub make_safe { $_ = shift; s/([^\x20-\x7e])/sprintf("%%%02X", $1)/eg; $_; } sub unmake_safe { $_ = shift; s/%([A-F0-9]{2})/chr(hex(2))/eg; $_; } sub profile_load { ($username) = @_; %profile = (); open PROFILE, "$datadir/profiles/$username"; while (<PROFILE>) { chomp; ($key, $value) = split(/\s*=\s*/); $profile{$key} = unmake_safe($value); } return %profile; } sub profile_save { ($username, %profile) = @_; open PROFILE, ">$datadir/profiles/$username"; while (($key, $value) = each %profile) { print PROFILE "$key = ", make_safe($value), "\n"; } close PROFILE; }