open $FP, '>', $outfile or die $outfile." Cannot open file for writing\n";
我见过这个 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:$!";
包括原因
open
失败的。如果你想封装它,你可以写:
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。 Owens 建议使用它。
关于perl - 用 Perl 编写宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3661161/