加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Perl中编写宏

发布时间:2020-12-15 21:12:37 所属栏目:大数据 来源:网络整理
导读:open $FP,'',$outfile or die $outfile." Cannot open file for writingn"; 我的代码中有很多次这个说法. 我想保持所有这些语句的格式相同,所以当有些事情发生变化时,它只会在一个地方改变. 在Perl,我该如何解决这种情况? 应该使用宏或函数吗? 我已经看到
open $FP,'>',$outfile or die $outfile." Cannot open file for writingn";

>我的代码中有很多次这个说法.
>我想保持所有这些语句的格式相同,所以当有些事情发生变化时,它只会在一个地方改变.
>在Perl,我该如何解决这种情况?
应该使用宏或函数吗?

我已经看到这个SO线程How can I use macros in Perl?,但它并没有说太多关于如何编写一般的宏

#define fw(FP,outfile) open $FP,
        $outfile or die $outfile." Cannot open file for writingn";

解决方法

首先,你应该写成:
open my $FP,$outfile or die "Could not open '$outfile' for writing:$!";

包括打开失败的原因.

如果你想封装,你可以写:

use Carp;

sub openex {
    my ($mode,$filename) = @_; 
    open my $h,$mode,$filename
        or croak "Could not open '$filename': $!";
    return $h;
}

# later

my $FP = openex('>',$outfile);

从Perl 5.10.1开始,autodie是核心,我将第二个Chas.欧文斯的建议使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读