I ont une fonction qui extrait les données Excel dans un tableau de hash comme ceci:Rechercher hachage dans un tableau par valeur
sub set_exceldata {
my $excel_file_or = '.\Excel\ORDERS.csv';
if (-e $excel_file_or) {
open (EXCEL_OR, $excel_file_or) || die("\n can't open $excel_file_or: $!\n");
while() {
chomp;
my ($id, $date, $product, $batchid, $address, $cost) = split ",";
my %a = (id => $id
, date => $date
, product => $product
, batchid => $batchid
, address => $address
, cost => $cost
);
push (@array_data_or, \%a);
}
close EXCEL_OR;
}
}
peuplant le tableau de hachages est très bien. Cependant, la partie difficile est la recherche d'un élément particulier (hachage) dans le tableau. Je n'arrive pas à localiser les articles qui pourraient avoir un ID ou 21, ou un batchid de 15, ou un coût> 20 $ etc.
Comment pourrais-je mettre en place un tel système de recherche?
Merci à tous,
Vous pouvez simplement appuyer sur une commande de hachage anonyme (@array, {id => $ id}); –
Bien que n'étant pas directement lié à votre question, vous devriez regarder Text :: xSV pour analyser le fichier .csv. Juste faire une scission sur "," n'est pas fiable à 100% pour l'analyse syntaxique. Il existe également un module Spreadsheet :: ParseExcel qui peut analyser les binaires Excel. – jiggy