【问题标题】:foreach in Perl and TclPerl 和 Tcl 中的 foreach
【发布时间】:2016-01-15 11:12:20
【问题描述】:

我有一个遍历数组的 Perl 脚本,如下所示:

my @GPO_regs = qw(0x70034 0x70038 0x7003C 0x70040 0x70044);

foreach my $register (@GPO_regs) { write_register($register, 0x0000) };

上面的 tcl 等价物应该是什么?这个对吗?

set GPO_regs "0x70034 0x70038 0x7003C 0x70040 0x70044"

foreach {regs} [array get GPO_regs] { write_register $regs 0x0000}

【问题讨论】:

    标签: perl tcl


    【解决方案1】:

    这里的 GPO_regs 是一个列表,而不是一个数组,所以你只需要对它进行交互就是

    foreach regs $GPO_regs {write_register $regs 0x0000}
    

    【讨论】:

    • 在函数write_register中,我只想打印寄存器值和0x0000,但是函数调用不起作用:proc write_register {$regs $value} { puts [format "要写入的值%s 寄存器是 %s" $register $value] }
    • 要正确传递参数,write_register的定义应该是proc write_register {register value} { puts [format "Value to be written at %s register is %s" $register $value] }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多