如何更好地从文件中读取PID编号?
名为pid
的文件包含当前进程的PID或0;
我想从文件中的变量中读取它,并且提供了最长的解决方案:
open my $fh, '<', 'pid';
my $line = <$fh>;
close $fh;
chomp $line;
my $pid = 0+ $line;
say $pid;
有没有更优雅的解决方案?
答案 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的返回值不是可选的。