5 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
10 &append_file &edit_file &read_file &replace_file
11 &normalize_set &is_subset
16 ########################################################################
23 open(OUT, ">> $filename") || die "Can't open file '$filename'";
24 my $result = &$function(\*OUT, @_);
30 ########################################################################
37 open(IN, "< $filename") || die "Can't open file '$filename'";
38 open(OUT, "> $filename.tmp") || die "Can't open file '$filename.tmp'";
40 my $result = &$function(\*IN, \*OUT, @_);
47 rename("$filename.tmp", "$filename");
49 unlink("$filename.tmp");
55 ########################################################################
62 open(IN, "< $filename") || die "Can't open file '$filename'";
63 my $result = &$function(\*IN, @_);
69 ########################################################################
76 open(OUT, "> $filename.tmp") || die "Can't open file '$filename.tmp'";
78 my $result = &$function(\*OUT, @_);
84 rename("$filename.tmp", "$filename");
86 unlink("$filename.tmp");
92 ########################################################################
103 foreach my $key (split(/\s*&\s*/)) {
107 return join(" & ", sort(keys(%hash)));
110 ########################################################################
117 foreach my $subitem (split(/ & /, $subset)) {
119 foreach my $item (split(/ & /, $set)) {
120 if($subitem eq $item) {