in reply to ack 2.0 has been released
Fantastic, how can I call it from within my program?
Do you support something like the following?
my $iterator = App::Ack->fandango(qw[ -in dir1 dir2/dir3 --match ^the. +start.ends.now$ ]); while(my $result = $iterator->() ){ ## my( $file, $lineno, $line ) = $result->finoli; ## my( $file, $lineno, $line ) = $result->fileNumberLine; my $file = $result->file; while( my( $lineno, $line ) = $result->next ){ print "$lineno: $line\n"; } }
Or how about ack()?
my @finolis = ack( qw[ --perl --match \bVERSION\b\s*=(.*?)$ ] ); for my $finoli ( @finolis ){ my( $file, $nolis ) = @$finoli; for my $noli ( @$nolis ){ my( $number, $line ) = @$noli; } }
Or --no-filename? my @lines = ack( qw[ -h --perl --match sub\s+\w+ ]);
Or matches? my @matches = ack( qw[ -o -h --perl --match sub\s+\K(\w+) ]);
Or my @files = ack( qw[ -l --perl ], $dir1, $dir2, $dir3 );
Hmm, ?? my @files = ackfiles(qw[ --perl ], $dir1, $dir2 );
?? my @matches = ackmatches(qw[ --perl --match sub\s+\K(\w+) ]);
?? my @lines = acklines( qw[ --perl --match sub\s+\w+ ]);
?? ... = ackiterator(qw[ -in dir1 dir2/dir3 --match ^start.ends$ ]);
Hmm, i'm not sure about iterator :) but ackfiles/acklines/ackmatches seem like no-brainer-i-want-it feature, cause I've done that, ack ack ack some stuff, then write a File::Find::Rule loop to parse some files ... not exactly much harder to write, and ack() won't exactly shorten my effort that much, sure the file-type-matching logic will be the same, but I'm not sure if this would be useful
So, I've thought about it once or twice, might be nice, wouldn't take much effort to add-on this feature, but its not exactly a must-have, not sure it's really i-want-it, but I thought about wanting it on two occasions for about 5 seconds (honest)
Thanks for listening :)
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: ack 2.0 has been released (?wishlist?)
by petdance (Parson) on Apr 29, 2013 at 14:18 UTC | |
by Anonymous Monk on Apr 29, 2013 at 16:14 UTC | |
by petdance (Parson) on Apr 29, 2013 at 16:35 UTC | |
by Anonymous Monk on Apr 29, 2013 at 18:50 UTC |