2
A
回答
4
如果您正在使用線輸入運算符逐行讀取文件句柄,則特殊變量$.
會給出當前行。
以下是一些示例代碼:它讀取一個文件行,用$pos
對字符進行計數。
#!/usr/bin/env perl
use v5.12;
use strict;
open my $fh, '<', 'file.txt';
my $reference = 5347;
my $pos = 0;
do {
$pos += length <$fh>;
} while ($pos < $reference);
say $.;
3
這輕輕測試的代碼似乎對我做的工作:
my $desired = 5347;
my $char_count = 0;
while (<$fh>) {
$count += length;
if ($count >= $desired) {
print $. . $/;
last;
}
}
當然它假定$fh
是尚未從尚未閱讀已經打開的文件句柄。
另請注意,它計數的字符,而不是字節,這是你所說的,但可能不是你的意思。
+0
OK。就像我向@Marco建議的那樣,在我們遇到這個職位之前,是否可以進行一次尋求以防止閱讀整個文件? –
+2
@Raphink:不需要,你需要有人爲你計算線路 - 只是尋求不會那樣做。你可以讀入文件「raw」並自行計算行結尾,直到你到達你的位置,或者逐行讀取並讓perl爲你計算它們,但是某種方式或某種方式需要計算行數,對不對? –
相關問題
- 1. 從無符號整數中獲取位設置位置
- 2. 從字符串獲取int位置PHP
- 3. 獲取索引位置從字符串
- 4. [Android]如何從字符串獲取項目編號(位置)[]
- 5. 獲取字符位置
- 6. 從textarea獲取帶有字符串(「行號」)的行號?
- 7. 獲取行號從插入符號
- 8. 從iBeacon獲取位置RSSI信號
- 9. 按位置從字符串中獲取某些字符
- 10. 如何從字符串批量獲取字符的位置
- 11. 從位置獲取位置
- 12. 從數字字符串獲取位
- 13. 從基因符號和ID獲取基因位置
- 14. 從2個16位有符號字節獲取帶符號整數?
- 15. JEditorPane在行和列號處獲得字符的位置
- 16. 獲取行位置
- 17. 如何獲取XmlElement的字符位置?
- 18. 在TLF中獲取字符位置
- 19. 從「從右到左」獲取字符串的位置
- 20. Python提取字段和符號位置的子字符串
- 21. JavaScript的 - 從位置獲取字符串直到行/回車符結束
- 22. 獲取包含字符串的行號
- 23. 從字符串獲取編號
- 24. 如何通過位置號從字符串中刪除字符?
- 25. DLL從其父(符號)獲取符號
- 26. 從符號讀取字符串以從字符串符號
- 27. 從括號,括號和連字符的字符串中獲取子字符串
- 28. 獲取位號
- 29. 從行首開始的字符位置
- 30. android layoutinflater setText從字符串獲取文本+位置
所以我應該做一個尋求給定的位置,然後使用'$ .'來創建行號? –
@Raphink - 不,它只適用於用<<>' –
閱讀嗯,我認爲'seek()'不會工作,因爲它不更新特殊變量'$ .' –