在Perl中编写宏

前端之家收集整理的这篇文章主要介绍了在Perl中编写宏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
open $FP,'>',$outfile or die $outfile." Cannot open file for writing\n";

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

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

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

解决方法

首先,你应该写成:
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.欧文斯的建议使用它.

猜你在找的Perl相关文章