[Chicago-talk] What does dollar sign followed by a period represent?
Adriano Ferreira
a.r.ferreira at gmail.com
Sun Dec 24 21:02:26 PST 2023
"perldoc" has the answer, just like mentioned by Andy and David. And
"perldoc" has a special trick when you want to look up a special variable.
perldoc -v PerlVar
In the case of $.:
% perldoc -v '$.'
HANDLE->input_line_number( EXPR )
$INPUT_LINE_NUMBER
$NR
$. Current line number for the last filehandle accessed.
Each filehandle in Perl counts the number of lines that have
been read from it. (Depending on the value of $/, Perl's idea of
what constitutes a line may not match yours.) When a line is
read from a filehandle (via "readline()" or "<>"), or when
"tell()" or "seek()" is called on it, $. becomes an alias to the
line counter for that filehandle.
You can adjust the counter by assigning to $., but this will not
actually move the seek pointer. *Localizing $. will not localize
the filehandle's line count*. Instead, it will localize perl's
notion of which filehandle $. is currently aliased to.
$. is reset when the filehandle is closed, but not when an open
filehandle is reopened without an intervening "close()". For
more details, see "I/O Operators" in perlop. Because "<>" never
does an explicit close, line numbers increase across "ARGV"
files (but see examples in "eof" in perlfunc).
You can also use "HANDLE->input_line_number(EXPR)" to access the
line counter for a given filehandle without having to worry
about which handle you last accessed.
Mnemonic: many programs use "." to mean the current line number.
On Sat, Dec 23, 2023 at 9:47 PM David Mertens <dcmertens.perl at gmail.com>
wrote:
> When in doubt,
>
> perldoc perlvar
>
> Might give you a faster answer than asking the list. Ymmv. :-)
>
> On Sat, Dec 23, 2023, 5:02 PM Richard Reina <richard at rushlogistics.com>
> wrote:
>
>> Ahh thank you so very much Andy!
>>
>>
>>
>>
>>
>> On Sat, 23 Dec 2023 16:59:24 -0600, Andy Lester <andy at petdance.com>
>> wrote:
>>
>> It’s the current line number. See “perldoc perlvar”
>>
>> > On Dec 23, 2023, at 4:57 PM, Richard Reina wrote:
>> >
>> >
>> > A few years ago I hastily wrote some code that I did not comment very
>> well. In it I found:
>> >
>> > $switch = $. if m!^[0-3]?[0-9]/[0-3]?[0-9]/(?:[0-9]{2})?[0-9]{2}$!; #
>> match date
>> >
>> > Can anyone tell me what $. means?
>> >
>> > Thanks for any help.
>> >
>> > Richard
>> > _______________________________________________
>> > Chicago-talk mailing list
>> > Chicago-talk at pm.org
>> > https://mail.pm.org/mailman/listinfo/chicago-talk
>>
>> _______________________________________________
>> Chicago-talk mailing list
>> Chicago-talk at pm.org
>> https://mail.pm.org/mailman/listinfo/chicago-talk
>>
>> _______________________________________________
>> Chicago-talk mailing list
>> Chicago-talk at pm.org
>> https://mail.pm.org/mailman/listinfo/chicago-talk
>>
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> https://mail.pm.org/mailman/listinfo/chicago-talk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/chicago-talk/attachments/20231224/67f77b56/attachment.html>
More information about the Chicago-talk
mailing list