/ / Найпростіший спосіб зіставити 2d масив клавіш / рядків для пошуку в perl? - perl, string, повнотекстовий пошук, реалізація

Найпростіший спосіб зіставити 2-ма масив ключів / рядків для пошуку в perl? - perl, string, full-text-search, implementation

Пов’язане з моїм попереднім запитанням (знайшов тут), Я хочу мати можливість реалізувати відповіді, задані двовимірним масивом, а не одним розмірним.

Reference Array
row[1][0]: 13, row[1][1]: Sony
row[0][0]: 19, row[0][1]: Canon
row[2][0]: 25, row[2][1]: HP

Search String: Sony"s Cyber-shot DSC-S600
End Result: 13

Відповіді:

3 для відповіді № 1
use strict;
use warnings;

my @array = (
[ 19, "Canon" ],
[ 13, "Sony"  ],
[ 25, "HP"    ],
);

my $searchString = "Sony"s Cyber-shot DSC-S600";

my @result = map { $array[$_][0] }                        # Get the 0th column...
grep { $searchString =~ /$array[$_][1]/ }  # ... of rows where the
0 .. $#array;                            #     first row matches

print "@result";  # prints "13"

Краса такого підходу полягає в тому, що він стосується можливості декількох матчів, тому якщо Sony і HP коли-небудь вирішили співпрацювати на камеру, ваш код може повернути і те, і інше! (13 25)