如果您希望它们存储在单独的数组中,请使用:
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
my @names = ('sipcalc-1.2.3-1', 'libapache2-mod_perl-2.3.4-ubuntu5', 'libapt-inst1.4-0.8.16~exp12ubuntu10.10','isc-dhcp-common-4.1.ESV-R4-0ubuntu5.8', 'libaprutil1-1.3.12+dfsg-3');
my (@var1, @var2, @var3);
foreach (@names) {
my ($match1, $match2, $match3) = ($_ =~ /(.*)\-([\d\.]+)\W([a-z]*.*)/i);
push @var1, $match1;
push @var2, $match2;
push @var3, $match3;
}
print Dumper (\@var1);
print Dumper (\@var2);
print Dumper (\@var3);
输出:
$VAR1 = [
'sipcalc',
'libapache2-mod_perl',
'libapt-inst1.4',
'isc-dhcp-common',
'libaprutil1'
];
$VAR1 = [
'1.2.3',
'2.3.4',
'0.8.16',
'4.1',
'1.3.12'
];
$VAR1 = [
'1',
'ubuntu5',
'exp12ubuntu10.10',
'ESV-R4-0ubuntu5.8',
'dfsg-3'
];