Funkcija „Perl grep“ () yra filtras, kuris reguliuoja išraišką kiekviename masyvo elemente ir pateikia tik tuos elementus, kurie vertinami kaip tiesa. Reguliarių išraiškų naudojimas gali būti nepaprastai galingas ir sudėtingas. Grep () funkcijos naudoja sintaksę @List = grep (Expression, @array).
Grep () funkcijos naudojimas teisingoms išraiškoms grąžinti
@myNames = ('Jokūbas', 'Mykolas', 'Joshua', 'Mathew', 'Aleksandras', 'Andrew');
@grepNames = grep (/ ^ A /, @myNames);
Pagalvokite apie „@myNames“ masyvą kaip sunumeruotų langelių eilę, einančią iš kairės į dešinę ir sunumeruotą pradedant nuo nulio. Funkcija grep () eina per kiekvieną elementą (langelį) masyve ir lygina jų turinį su reguliariąja išraiška. Jei rezultatas yra tiesa, tada turinys pridedamas prie naujojo @grepNames masyvo.
Aukščiau pateiktame pavyzdyje reguliari išraiška / ^ A / ieško bet kokios vertės, kuri prasideda didžiosiomis raidėmis A. Išsijoję „@myNames“ masyvo turinį, „@grepNames“ vertė tampa („Aleksandras“, „Andrius“) - tai yra vieninteliai du elementai, prasidedantys raide A.
Greičio () funkcijos išraiškos atšaukimas
Vienas greitas būdas padaryti šią funkciją galingesnę - pakeisti įprastinę išraišką naudojant NOT operatorių. Tada įprastinė išraiška ieško elementų, kuriuos vertina melagingas ir perkelia juos į naują masyvą.
@myNames = ('Jokūbas', 'Mykolas', 'Joshua', 'Mathew', 'Aleksandras', 'Andrew');
@grepNames = grep (! / ^ A /, @myNames);
Aukščiau pateiktame pavyzdyje reguliari išraiška ieškoma bet kokios vertės, kuri prasideda ne nuo A raidės. Po sijojimo per @myNames masyvo turinį, @grepNames vertė tampa („Jokūbas“, „Mykolas“, „Joshua“, „Matas“).
Apie Perlą
Perlas yra pritaikoma programavimo kalba, dažnai naudojama kuriant interneto programas. „Perl“ yra interpretuojama, o ne kompiliuota kalba, todėl jos programos užima daugiau procesoriaus laiko nei sudarytos kalbos - problema, kuri tampa ne tokia svarbi, nes didėja procesorių greitis. Tačiau rašyti Perle yra greičiau nei rašyti kompiliuota kalba, todėl sutaupomas laikas yra jūsų pačių.