gpt4 book ai didi

Perl 写宏的正确方法

转载 作者:行者123 更新时间:2023-12-01 05:37:46 25 4
gpt4 key购买 nike

为了简化我的程序,我想写一些我可以在不同的子程序中使用的宏。

这是我写的:

my @m = ();
sub winit { @m = (); }
sub w { push @m, shift; }
sub wline { push @m, ''; }
sub wheader { push @m, commentHeader(shift); }
sub walign { push @m, alignMakeRule(shift); }
sub wflush { join($/, @m); }

sub process {
winit;

w "some text";
wline;

wheader 'Architecture';
w getArchitecture();
wline;

say wflush;
}

有没有更好或更聪明的方法来做我想做的事?

最佳答案

如果您觉得这种方法有用,您可以使用闭包或闭包哈希,

use strict;
use warnings;
use feature 'say';

sub winit {
my @m;
return (
w => sub { push @m, shift; },
wline => sub { push @m, ''; },
wheader => sub { push @m, "commentHeader ". shift; },
walign => sub { push @m, "alignMakeRule ". shift; },
wflush => sub { join($/, @m); },
);
}

sub process {
my %w = winit();

$w{w}->("some text");
$w{wline}->();

$w{wheader}->('Architecture');
$w{w}->("getArchitecture()");
$w{wline}->();

say $w{wflush}->();
}

process();

关于Perl 写宏的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com