Next | Trivial Utilities | 59 |
How did the file get tied?
my (@SEQUENCE, $TIED); my $folder; if ($ARGV[0] =~ /^\+(.*)/) { $folder = shift; mhc "folder -nocreate $folder"; $folder =~ s/^\+//; } else { $folder = mhc "folder -fast"; } my $seqfile = seqfile($folder); my $TIED = tie my @SEQUENCE, 'Tie::File', $seqfile or die "Couldn't tie $seqfile: $!"; $TIED->flock(LOCK_EX) or die "Couldn't lock $seqfile: $!"; unless (@ARGV) { list_seqs(); exit 0; }
Lessons learned:
Tie::File makes a good lightweight database, if performance is unimportant
Calling out the the shell is easy and convenient
Dispatch tables can provide synonyms for internal operations
Next | Menu | Copyright © 2012 M. J. Dominus |