gpt4 book ai didi

perl - 如何从命令行获取文件句柄?

转载 作者:行者123 更新时间:2023-12-01 22:56:50 25 4
gpt4 key购买 nike

我有一个将文件句柄作为参数的子例程。如何从命令行上指定的文件路径创建文件句柄?我不想自己对这个文件做任何处理,我只想把它传递给另一个子程序,它返回一个包含文件中所有解析数据的哈希数组。

这是我使用的命令行输入的样子:
$ ./getfile.pl /path/to/some/file.csv
这是我正在调用的子程序的开头部分:

sub parse {
my $handle = shift;
my @data = <$handle>;
while (my $line = shift(@data)) {
# do stuff
}
}

最佳答案

命令行参数在预定义的 @ARGV 中可用大批。您可以从那里获取文件名并使用 open打开它的文件句柄。假设您想要对该文件进行只读访问,您可以这样做:

my $file = shift @ARGV;
open(my $fh, '<', $file) or die "Can't read file '$file' [$!]\n";
parse($fh);

请注意 or die...查看电话 open成功,如果不是,则以错误消息死亡。内置变量 $!将包含失败时的(依赖于操作系统的)错误消息,告诉您调用不成功的原因。例如“没有权限。”

关于perl - 如何从命令行获取文件句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/189293/

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