gpt4 book ai didi

perl - 为什么新打开的句柄上的 FileHandle::getpos 返回空字符串而不是 0?

转载 作者:行者123 更新时间:2023-12-01 09:38:48 25 4
gpt4 key购买 nike

我正在尝试在 Perl 中使用 getpos。我在下面的代码中使用了 FileHandle 对象,但它似乎不起作用。谁能告诉我我做错了什么?

use strict;
use warnings;
use FileHandle;

my $fh = new FileHandle;
$fh->open("<test.txt") or die "$!";
my $pos = $fh->getpos;
print "pos: \"$pos\"\n";

输出是:

pos: ""

我希望输出“0”...

最佳答案

请注意 documentation 中的警告(强调添加) :

If the C functions fgetpos and fsetpos are available, then FileHandle::getpos returns an opaque value that represents the current position of the FileHandle, and FileHandle::setpos uses that value to return to a previously visited position.

不透明意味着您不应该注意该值:仅在将来来自模块的请求中将其用作参数。

为什么不使用 Perl 的 tellseek运营商?

#! /usr/bin/perl

use warnings;
use strict;

open my $fh, "<", $0 or die "$0: open: $!";
print tell($fh), "\n";

如你所料,上述程序的输出是0

关于perl - 为什么新打开的句柄上的 FileHandle::getpos 返回空字符串而不是 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3121550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com