{ open(local *FILE, '>', 'delete_me.txt') or die; print FILE "Test file line $_\n" for 1..4; } { print("Two Handles\n\n"); open(local *FILE1, '<', 'delete_me.txt') or die; open(local *FILE2, '<', 'delete_me.txt') or die; print scalar <FILE1>; print scalar <FILE1>; print scalar <FILE1>; print("$.\n"); # 3 (Line num for FILE1) print scalar <FILE2>; print("$.\n"); # 1 (Line num for FILE2) print scalar <FILE2>; print("$.\n"); # 2 (Line num for FILE2) print scalar <FILE1>; print("$.\n"); # 4 (Line num for FILE1) } print("--\n"); { print("Does 'seek' Count As an Access?\n\n"); open(local *FILE1, '<', 'delete_me.txt') or die; open(local *FILE2, '<', 'delete_me.txt') or die; print scalar <FILE1>; print scalar <FILE1>; print scalar <FILE1>; print("$.\n"); # 3 (Line num for FILE1) seek(FILE2, 0, 0) or die; # seek counts as an access. print("$.\n"); # 0 (Line num for FILE2) print scalar <FILE1>; print("$.\n"); # 4 (Line num for FILE1) } print("--\n"); { print("Does 'eof' Count As an Access?\n\n"); open(local *FILE1, '<', 'delete_me.txt') or die; open(local *FILE2, '<', 'delete_me.txt') or die; print scalar <FILE1>; print scalar <FILE1>; print scalar <FILE1>; print("$.\n"); # 3 (Line num for FILE1) eof(FILE2); # eof counts as an access. print("$.\n"); # 0 (Line num for FILE1) print scalar <FILE1>; print("$.\n"); # 4 (Line num for FILE1) } print("--\n"); { print("Does 'read' Count As an Access?\n\n"); open(local *FILE1, '<', 'delete_me.txt') or die; open(local *FILE2, '<', 'delete_me.txt') or die; print scalar <FILE1>; print scalar <FILE1>; print scalar <FILE1>; print("$.\n"); # 3 (Line num for FILE1) read(FILE2, my $buf='', 1) or die; # read doesn't count print("$.\n"); # 3 (Line num for FILE1) print scalar <FILE1>; print("$.\n"); # 4 (Line num for FILE1) } print("--\n"); { print("Assigning to \$.\n\n"); open(local *FILE, '<', 'delete_me.txt') or die; print scalar <FILE>; print scalar <FILE>; print scalar <FILE>; print("$.\n"); # 3 $. = 7; # Works like "#line" print("$.\n"); # 7 print scalar <FILE>; # Prints the 4th line. print("$.\n"); # 8 } unlink 'delete_me.txt';
In reply to Re: $. - smarter than you might think
by ikegami
in thread $. - smarter than you might think
by GrandFather
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |