解释我的疑问的最简单方法是一个示例...因此,这里是:
我在perl中有一个带有一组间隔的数组,我需要获取互补间隔,换句话说,就是该组的反像。从:
@ ary1 = qw(23-44 85-127 168-209)
打印间隔:23-44、85-127、168-209。
将其转换为:
...- 22、45-84、128-167、210 -...
非常感谢您的考虑!
如果间隔已经排序并且不重叠:
#!/usr/bin/perl
use warnings;
use strict;
use List::MoreUtils qw{ natatime };
my @ary1 = qw(23-44 85-127 168-209);
my $diff = 1;
my $pair = natatime 2, '...',
map({ map { $diff *= -1; $_ + $diff }
split /-/
} @ary1),
'...';
my @compl;
while (my ($from, $to) = $pair->()) {
push @compl, "$from-$to";
}
print "@compl\n";
输出
...-22 45-84 128-167 210-...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句