David wrote: > > does the following do what you want: > > sub update_categories{ > my $data_files = shift; > my $main_cat = shift; > my $sub_cat = shift; > open(CAT,$data_files) || die $!; > while(<CAT>){ > close(CAT) and return if(/$main_cat\::$sub_cat/); #-- 1. > } > close(CAT); > open(CAT,">>$data_files") || die $!; > print CAT "$main_cat\::$sub_cat\n"; #-- 2. > close(CAT); > } > > 1. return and do nothing if $main_cat::$sub_cat already exists in the file > 2. add to the end of the data file if $main_cat::$sub_cat does not exists
thinking about it after a while, probably better as: sub update_categories{ my $data_files = shift; my $main_cat = shift; my $sub_cat = shift; open(CAT,"+>>$data_files") || die $!; while(<CAT>){ close(CAT) and return if(/$main_cat\::$sub_cat/); } print CAT "$main_cat\::$sub_cat\n"; close(CAT); } david -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]