XP is just a number | |
PerlMonks |
Re: Re: Re: Count the number of lines in a fileby jmcnamara (Monsignor) |
on Aug 15, 2002 at 15:36 UTC ( [id://190432]=note: print w/replies, xml ) | Need Help?? |
Horizontally, Abigail-II's code looks like this: perl -lpe '}{*_=*.}{' file Which is really quite beautiful. Anyway, it (ab)uses the way that the -p command line option works. Consider the following output from deparse:
So for a simple bare -p you get all of that extra and useful code. Now if we deparse Abigail-II's code:
The addition of the extra braces has created a while loop that loops through the file(s), a block with an assignment and a block with an empty statement and a continue. In effect it has disassociated the continue from the while. The typeglob assignment *_ = *. has the effect, among other things, of setting $_ = $.. Since the while has already looped through the file(s) $. is now the number of lines in the file(s). The last action of the program will be to enter the continue and print $_ so that the number of lines is output. The -l command line option helpfully appends a newline. Update: Abigail-II's own explanation is here
In Section
Cool Uses for Perl
|
|