gpt4 book ai didi

perl - perl 中 <> 的默认文件源

转载 作者:行者123 更新时间:2023-12-02 14:38:19 25 4
gpt4 key购买 nike

我想通过<>运算符读取数据。

它从标准输入或从指定为脚本参数的文件中读取数据

但是,如果没有提供 STDIN,也没有指定文件,我想从默认文件路径读取数据;

所以,应该是这样的

my $file = '';
if ($ARGC) { open $file, '<default.txt'; }
while (<$file>) # if no ARGs it should be <>
{
do_all;
}

最佳答案

<>运算符从 @ARGV 读取输入文件名列表。因此,设置默认输入文件名的一种方法就是检查是否 @ARGV为空,如果是,则将您的默认文件名插入其中:

push @ARGV, "default.txt" unless @ARGV;
<小时/>

我不确定你所说的“没有提供 STDIN”是什么意思,但如果你的意思是你希望你的脚本从 foo.txt 读取。而不是default.txt如果调用为例如:

perl script.pl < foo.txt

或者:

cat foo.txt | perl script.pl

然后你可以通过检查是否 STDIN 来做到这一点是否从终端读取,使用 -t file test 。如果STDIN不是 tty,它很可能是管道或文件,因此您应该尝试从中读取:

push @ARGV, "default.txt" unless @ARGV or !-t STDIN;

关于perl - perl 中 <> 的默认文件源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330133/

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