Saved has asked for the wisdom of the Perl Monks concerning the following question:
All help appreciated muchly#!/usr/bin/perl #<"Search.pl"> Split File $LOGIN=$ENV{"LOGNAME"}; system("mkdir /tmp/${LOGIN} 2>/dev/null"); $STATUS="/tmp/${LOGIN}/STATUS"; undef $/; if ( $#ARGV == 1 ) { $OPTION=$ARGV[0]; $SEARCH=$ARGV[1]; $spid = open(SFILE, ">>$STATUS") or die "STATUS File Not Found: $!\n +"; @finfo=split(/\n\n/, <STDIN>); $tRecsInfo = @finfo; } elsif ( $#ARGV == 2 ) { $OPTION=$ARGV[0]; $SEARCH=$ARGV[1]; $FLNAME=$ARGV[2]; $fpid = open(XFILE, $FLNAME) or die "Search File Not Found: $!\n"; $spid = open(SFILE, ">$STATUS") or die "Status File Not Found: $!\n" +; @finfo=split(/\n\n/, <XFILE>); $tRecsInfo = @finfo; } else { print ("Usage: $0 <with|not> <SearchString> [<File2Search>STDIN if mis +sing]\n"); exit; } @MATCHING = (); if ( $OPTION eq "with" ) { @MATCHING = grep /$SEARCH/i, @finfo; } else { @MATCHING = grep !/$SEARCH/i, @finfo; } $tMATCHING = @MATCHING; print SFILE "\n$OPTION, $SEARCH, $FLNAME"; print SFILE "\nI read ", $tRecsInfo, " RECORDS,"; print SFILE " I Selected ", $tMATCHING, " RECORDS\n"; print join "\n\n", @MATCHING; print "\n"; close(SFILE); $spid = open(SFILE, "<$STATUS" ) or die "The Status File Not Found: $! +\n"; print STDERR <SFILE>; close(SFILE);
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: SubSearch - "Line starts with"
by roboticus (Chancellor) on Mar 31, 2010 at 14:26 UTC | |
|
Re: SubSearch - "Line starts with"
by jethro (Monsignor) on Mar 31, 2010 at 15:11 UTC |