相关疑难解决方法(0)

如何测试我是否可以写入文件句柄?

我有一些我称之为的子程序myWrite($fileName, \@data). myWrite()打开文件并以某种方式写出数据.我想修改,myWrite以便我可以像上面那样调用它或者使用文件句柄作为第一个参数.(这种修改的主要原因是将文件的开头委托给调用脚本而不是模块.如果有一个更好的解决方案来告诉IO子程序在哪里写,我很高兴听到它. )

为了做到这一点,我必须测试第一个输入var是否是文件句柄.我通过阅读这个问题想出了如何做到这一点.

现在这是我的问题:我还想测试是否可以写入此文件句柄.我无法弄清楚如何做到这一点.

这就是我想要做的事情:

sub myWrite {
  my ($writeTo, $data) = @_;
  my $fh;
  if (isFilehandle($writeTo)) { # i can do this
    die "you're an immoral person\n" 
      unless (canWriteTo($writeTo)); # but how do I do this?
    $fh = $writeTo;
  } else {
    open $fh, ">", $writeTo;
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

我需要知道的是,如果我可以写入文件句柄,虽然看到一些通用解决方案可以告诉您是否使用">>"或"<"打开文件句柄,或者如果不是开放等

(请注意,这个问题是相关的,但似乎没有回答我的问题.)

perl file-io filehandle

10
推荐指数
2
解决办法
4351
查看次数

标签 统计

file-io ×1

filehandle ×1

perl ×1