Si tenga presente che questa guida viene proposta soprattutto a fini storici e gli esempi non funzionano più su questo sito.
Per contattare direttamente il Cybernauta: Mailto@cybernauta
Risposte alle domande più frequenti: FAQ@cybernauta
La pagina Facebook curata dal Cybernauta: Facebook@cybernauta
Il formato utilizzato per i database interrogabili con questo programma è quello normalmente detto: "ascii delimitato". Si tratta di normali file di testo dove ogni riga costituisce un record con i singoli campi separati da un apposito carattere delimitatore (una virgola, un punto e virgola, una tabulazione, ecc.). Tali database possono essere creati e aggiornati "online" tramite la procedura fileform.pl oppure gestiti localmente sulla macchina del'utente e quindi scaricati su MC-link tramite il file manager oppure via FTP.
Il programma prevede l'interrogazione del database tramite un classico form ed è possibile utilizzare gli operatori logici "and" e "or". Il risultato dell'elaborazione viene restituito con una normale pagina Web il cui aspetto finale viene deciso dall'utente che ne può curare pienamente l'intestazione, la disposizione delle informazioni elaborate, il fondo pagina, il titolo ecc.
<form method="post"> <input type="hidden" name="datafile" value="database.txt" /> <input type="hidden" name="delimiter" value=";" /> <input type="hidden" name="title" value="Risultato" /> <input type="hidden" name="header" value="head.htm" /> <input type="hidden" name="footer" value="foot.htm" /> <input type="hidden" name="template" value="output.tpl" /> <input type="hidden" name="max_results" value="100" /> <input type="hidden" name="failure_url" value="failure.htm" /> <input type="text" name="campo-1" /> <input type="text" name="campo-2" /> <input type="text" name="campo-n" /> <input type="radio" name="logic" value="and" checked="checked" />and <input type="radio" name="logic" value="or">or <input type="submit" value="OK" /> </form>
I nomi dei campi che costituiscono il form sono disponibili in variabili che hanno lo stesso nome dei campi ma precedute dal simbolo del dollaro ($). Ad esempio il campo "campo-1" sarà disponibile nella variabile $campo-1. Si tenga presente che i nomi dei campi sono "case-sensitive" per cui, per esempio, la variabile $DataFile non esiste ma esiste la variabile $datafile. Ovviamente il programma, quando genera la pagina Web con il risultato dell'elaborazione, sostituisce alle variabili il contenuto dei rispettivi campi.
Sono inoltre diponibili le variabili: $count contenente il numero di record estratti e $recno con il numero di record esaminati.
Le modalità di interrogazione del database sono differenti a seconda che il campo di input sia numerico o alfanumerico.
Per i campi numerici si possono utilizzare i tradizionali operatori logici:
> (maggiore di) >= (maggiore o uguale a) < (minore di) <= (minore o uguale a) = (uguale a) ! (non) != (diverso da)
Supponiamo di avere un database che abbia un campo numerico di nome anno; se volessimo estrarre i record relativi al 1992 basterà inserire nel rispettivo campo di input: "=1992" oppure se ci interessassero i record per gli anni successivi al 1990 si dovrà inserire: ">1990".
Per i campi alfanumerici la ricerca si effettua semplicemente inserendo nel rispettivo campo di input il dato richiesto o parte di esso. Supponiamo di avere un database che abbia un campo alfanumerico di nome prodotto; se ci interessassero tutti i record relativi a prodotti video basterà inserire nel rispettivo campo di input: "video" (verranno estratti, ad esempio, i record relativi a videoregistratori, videocamere, videocitofoni ecc.). La ricerca non distingue fra maiuscolo e minuscolo. Qualora si desiderasse una ricerca esatta (non per sottostringa) si dovrà utilizzare l'operatore = (uguale a). Ad esempio, se ci interessassero le videocassette dovremo inserire nel campo di input "prodotto" la richiesta: "=videocassette". In questo caso la ricerca distingue fra maiuscolo e minuscolo.
Grazie al campo: "logic" è possibile combinare le condizioni di ricerca di più campi di input fino a formare un'interrogazione complessa. Se si imposta il valore "and" (default) verranno estratti i record per cui risultino verificate contemporaneamente tutte le condizioni previste nei campi di input. Se invece si imposta il valore "or" verranno estratti i record in cui sia verificata almeno una delle condizioni.
Per tutti i campi di input, numerici e alfanumerici, è sempre possibile utilizzare come condizioni di ricerca tutte le c.d. "regular expression" tipiche degli ambienti Unix.
nome;cognome;citta;cap;professione;stato;eta;reddito Mario;ROSSI;ROMA;00100;impiegato;coniugato;20;36500000 Romolo;SANTINI;ROMA;00100;studente;celibe;34;6000000 Nando;ROMANAZZI;ROMA;00100;ristoratore;celibe;45;85000000 Ambrogio;BRAMBILLA;MILANO;20100;imprenditore;coniugato;54;125000000 Gennaro;ESPOSITO;NAPOLI;80100;artigiano;coniugato;37;42500000 Giovanni;COLOMBO;MILANO;20100;impiegato;celibe;22;32500000 Vincenzo;ROMANO;NAPOLI;80100;commerciante;coniugato;39;72000000 Nicola;NOTARANGELO;BARI;71100;operaio;coniugato;52;29500000 Daniele;MORIN;VENEZIA;30100;artigiano;celibe;27;48500000 Carmelo;PATERNO';PALERMO;90100;operaio;coniugato;35;31500000
<html> <body> <p>Esempio dell'utilizzo di mgrep.pl</p> <p>Di seguito i record estratti dal database: <b>$datafile</b></p>
<hr /> <p><b>$cognome $nome</b>, $eta anni, $stato<br /> residente a $citta (cap $cap)<br /> professione $professione, reddito annuo L. $reddito</p>
<hr /> <p>Estratti <b>$count</b> su <b>$recno</b> record esaminati.</p> <p><small>Documento predisposto da Paolo Ciraci</small></p> </body> </html>
Fino al 2013 altri esempi pratici dell'uso di mgrep.pl erano disponibili su questo stesso sito come ad esempio il dizionario nautico oppure l'archivio delle emittenti meteofax che ora utilizzano differenti strumenti di gestione ed interrogazione.
Si tenga presente che questa Guida è stata redatta all'inizio del 1996 e nonostante sia stata aggiornata più volte nel corso degli anni è possibile che alcune funzionalità descritte siano completamente obsolete oppure non siano più disponibili nelle soluzioni di hosting offerte attuamente da MC-link (ora IRIDEO). In ogni caso molte delle funzionalità descritte in queste pagine sono state utilizzate efficacemente su questo sito addirittura fino a giugno 2013 ad esempio per gestire il popolare dizionario nautico dei termini marinari italiani ed inglesi oppure l'archivio delle emittenti meteofax che hanno fatto uso efficacemente di mgrep.pl per l'interrogazione dei propri database.