0

我正在执行 SQL 更新语句,但需要按顺序更新设备名称。

如果设备名称以 S01 结尾,则它们首先被重命名,然后是 p01,以此类推。

@order = qw(s01 s02 p02 r02);

While select * from #get device_name, suffix, etc

Foreach $i (@order) {
  If ($suffix eq $i) {
     Update table 

问题在于它会跳过与后缀不匹配的行。我尝试将选择输出绑定到哈希,但我认为我做得不对。哈希对我来说很难理解,除非它们很简单。

4

1 回答 1

0

此解决方案用于grep过滤掉您想要的名称。

my @order = qw(s01 s02 p02 r02);
my @device_names = qw(dev1s01 dev2s02 dev3p02 dev4r02);

foreach my $suffix (@order) {
    foreach my $device (grep /$suffix$/, @device_names) {
        # update table
    }
}
于 2013-01-30T05:07:48.180 回答