| [reply] [d/l] |
At the start, its the second line and then every fourth file after. ie line 2, 6, 8, 12 .. eof This is what was confusing me but I think I worked it out. See below. Thanks
| [reply] |
Actually, I think I've just worked it out my head. Took a bit of thinking but this is what i think it is doing
first line gets sent, but because <> is unassigned (before $s), it skips; then reads the second line and assigns $s to the line and does whatever; then reads third line but because <> is unassigned, it skips; reads fourth line and the same happens; restarts with 5 line but again because <> is unassigned before the $s it skips; reads 6th line and assigns it to $s and does whatever again
this continues until end of file
If this is incorrect, let me know. Otherwise I hope this helps anyone else who might look at it.
Thanks for your help choroba | [reply] |
perl -ne ' $s=<>; <>; <>; do_something_with_$s'
is equivalent to
perl -e ' while (<>) { $s=<>; <>; <>; do_something_with_$s} '
so 4 lines will be read each pass, but only the second line will be used for anything
Personally, I'd go with something like
perl -ne 'chomp; print length($_)."\n" if (/^@/);'
instead.
| [reply] [d/l] [select] |