Если вы начинаете с хэша, просто используйте ключи и значения , чтобы извлечь имена и фамилии.Чтобы извлечь имена из строки, просто добавьте группы захвата и /g
, чтобы найти все совпадения:
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
my %names = qw (hanibal lecter Harry Potter INDIANA JONES Sarah connor scarlet O'Hara JAMES Bond);
say join ' ', 'First names:', keys %names;
say join ' ', 'Last names:', values %names;
my $scalar_string = "hanibal lecter Harry Potter INDIANA JONES Sarah connor scarlet O'Hara JAMES Bond";
my (@first_names, @last_names);
while ($scalar_string =~ /([\w']+) ([\w']+)/g) {
push @first_names, $1;
push @last_names, $2;
}
say join ' ', 'First names:', @first_names;
say join ' ', 'Last names:', @last_names;