Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl搜索函数_Perl_Seek - Fatal编程技术网

Perl搜索函数

Perl搜索函数,perl,seek,Perl,Seek,这个问题解决了。非常感谢。 我的问题和我正在使用的解决方案如下所述。 问题: open IN, "<./test.txt"; seek(IN,10,0); read IN, $temp, 5; seek(IN,20,0); close(IN); 打开,“开始之前 你要求我们做的假设毫无意义。第一个字节在零位。总是 它被称为“文件句柄”(因为它允许您保留文件),而不是“文件句柄”(因为它不处理任何东西) 如果使用常量SEEK_SET、SEEK_CUR和SEEK_END而不是0、1和2

这个问题解决了。非常感谢。
我的问题和我正在使用的解决方案如下所述。

问题:

open IN, "<./test.txt";
seek(IN,10,0);
read IN, $temp, 5;

seek(IN,20,0);
close(IN);
打开,“开始之前

  • 你要求我们做的假设毫无意义。第一个字节在零位。总是

  • 它被称为“文件句柄”(因为它允许您保留文件),而不是“文件句柄”(因为它不处理任何东西)

如果使用常量SEEK_SET、SEEK_CUR和SEEK_END而不是0、1和2,则会更清楚

你的代码是

use Fcntl qw( SEEK_SET );

open IN, "<./test.txt";
seek(IN,10,SEEK_SET);
read IN, $temp, 5;

seek(IN,20,SEEK_SET);
close(IN);
如果您想相对于当前职位进行搜索,可以使用
seek\u CUR

         +--------------------------  0: Initially.
         |         +---------------- 10: After seek($fh, 10, SEEK_CUR).
         |         |    +----------- 15: After reading "KLMNO".
         |         |    |         +- 25: After seek($fh, 10, SEEK_CUR).
         |         |    |         |
         v         v    v         v 
file:    ABCDEFGHIJKLMNOPQRSTUVWXYZ
indexes: 01234567890123456789012345

非常感谢,这非常有帮助。@“
使用Fcntl qw(:seek)不在搜索文档中。它不是必需的,我不接受额外的、不可记忆的代码行和符号是好的,即使它们在您看来更有序。这就是你投反对票的原因。你给出的理由正是使用适当常数的理由。如果出现错误,必须记住不可记忆的魔法数字。这些常量记录在
seek
文档中。具体地说,就是将号码传递到的系统调用的文档。事实上,这些文件中甚至没有提到与这些常量对应的任何数字。这就提出了一个问题:Perl文档中提到的神奇数字是否总是正确的<代码>$position=tell(IN);seek(在$target_byte-$position中,seek_CUR)
是一种奇怪的查找方式(在$target\u字节中,seek\u SET)
         +--------------------------  0: Initially.
         |         +---------------- 10: After seek($fh, 10, SEEK_SET).
         |         |    +----------- 15: After reading "KLMNO".
         |         |    |    +------ 20: After seek($fh, 20, SEEK_SET).
         |         |    |    |
         v         v    v    v     
file:    ABCDEFGHIJKLMNOPQRSTUVWXYZ
indexes: 01234567890123456789012345
         +--------------------------  0: Initially.
         |         +---------------- 10: After seek($fh, 10, SEEK_CUR).
         |         |    +----------- 15: After reading "KLMNO".
         |         |    |         +- 25: After seek($fh, 10, SEEK_CUR).
         |         |    |         |
         v         v    v         v 
file:    ABCDEFGHIJKLMNOPQRSTUVWXYZ
indexes: 01234567890123456789012345