- 论坛徽章:
- 0
|
# 可以这样试试...
use strict;
use warnings;
use Data::Dumper;
my @lines = (
'xx not xxx until xxxx except',
'xxx not xxxx until xxxxx except',
'xxxx not xxxxx until xxxxxx except',
);
my %keyWidth = (
1 => { -key => 'not', -width => 0 },
2 => { -key => 'until', -width => 0 },
3 => { -key => 'except', -width => 0 },
);
for my $line (@lines) {
for my $keyId (1 .. scalar keys %keyWidth) {
my $key = $keyWidth{$keyId}->{-key};
my $width = $keyWidth{$keyId}->{-width};
if ( ($line =~ /\G(.*?)$key/g) && (length($1) > $width) ) {
$keyWidth{$keyId}->{-width} = length $1;
}
}
}
print Dumper(\%keyWidth);
|
|
|