OK, I can't resist. I take it the signature for the original functionality can not change. It must change for the inverted functionality of course, unless you have a Vulcan Mind Meld interface. With that in mind, how about this?
sub find_string { my ( $file, $string, $negative ) = @_; return 1 if _find_string( $file, $string, $negative ) die "False :Test result is FAIL"; } sub find_without_string { $_[2] = 1; goto &find_string; } sub _find_string { my ($file, $string, $negative) = @_; open my $fh, '<', $file; while (<$fh>) { return !$negative if /\Q$string/; } return $negative; } # Original functionality find_string('search.txt', 'name: abc '); # Inverted functionality find_string('search2.txt', 'name: abc ', 1 ); # or find_without_string('search2.txt', 'name: abc ' );
Of course, now that find_string() is a wrapper, you can play with the signature of _find_string() however you like. For example, you could pass it qr{\Q$string}, as was suggested earlier.
In reply to Re: Perl script to Parse a file for a string
by Anonymous Monk
in thread Perl script to Parse a file for a string
by user786
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |