Perl风格:闭包

  • 使用闭包克隆类似函数。

        # from MxScreen in TSA
        no strict 'refs';
        for my $color (qw[red yellow orange green blue purple violet]) {
            *$color = sub { qq<<FONT COLOR="\U$color\E">@_</FONT>> };
        }
        undef &yellow;      # lint happiness
        *yellow = \&purple; # function aliasing
    
  • 或者类似地

        # from psgrep (in TSA, or PCB 1.18)
        my %fields;
        my @fieldnames = qw(FLAGS UID PID PPID PRI NICE SIZE
                            RSS WCHAN STAT TTY TIME COMMAND);
    
        for my $name (@fieldnames) {
            no strict 'refs';
            *$name = *{lc $name} = sub () { $fields{$name} };
        }
    

前往 使用for进行切换学习
返回 函数作为数据
返回 索引

版权 © 1998, Tom Christiansen 版权所有。

标签

反馈

这篇文章有什么问题吗?请在GitHub上打开一个问题或拉取请求来帮助我们。