#!/usr/bin/perl use POSIX; @ARGV==3 or die; ($prefs_file, $new_list, $new_search) = @ARGV; $new_list =~ m/^(\-|\+[imtlfn]+)$/ or die; $new_list= $1; $new_search =~ m/^([nuy])$/ or die; $new_search= $1; $user= $ENV{'USERV_USER'}; length $user or die; open N, ">$prefs_file.new" or die $!; if (open P, $prefs_file) { while (

) { die unless m/^(\w+) /; next if $1 eq $user; print N or die $!; } close P or die $!; } elsif ($! != &ENOENT) { die $!; } print N "$user $new_list $new_search\n" or die $!; close N or die $!; rename "$prefs_file.new", $prefs_file or die $!;