从Perl中的文件中读取一个数字

时间:2019-09-02 14:24:08

标签: perl

如何更好地从文件中读取PID编号?

名为pid的文件包含当前进程的PID或0;

我想从文件中的变量中读取它,并且提供了最长的解决方案:

open my $fh, '<', 'pid';
my $line = <$fh>;
close $fh;

chomp $line;
my $pid = 0+ $line;

say $pid;

有没有更优雅的解决方案?

2 个答案:

答案 0 :(得分:2)

我喜欢Path::Tiny做这样的事情。

use Path::Tiny;

chomp(my $pid = path('pid')->slurp);

use Path::Tiny;

my ($pid) = path('pid')->lines({ chomp => 1, count => 1 });

我不确定为什么要强制文件为数字。您不信任文件的内容吗?

答案 1 :(得分:2)

不使用模块的常见方法是:

open my $fh, '<', 'pid' or die $!;
chomp( my $pid = <$fh> );

不需要关闭文件句柄,它将在超出范围时被关闭。但是,检查open的返回值不是可选的。