Amazon Best VPN GoSearch

Favicon di OnWorks

eseguire: online nel cloud

Esegui perlform nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando perlform che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


perform - Formati Perl

DESCRIZIONE


Perl ha un meccanismo per aiutarti a generare semplici report e grafici. Per facilitare questo,
Perl ti aiuta a codificare la tua pagina di output in modo fedele a come apparirà una volta stampata. Esso
può tenere traccia di cose come quante righe ci sono su una pagina, su quale pagina ti trovi, quando
stampare intestazioni di pagina, ecc. Le parole chiave sono prese in prestito da FORTRAN: formato() dichiarare e
write () eseguire; vedere le loro voci in perlfunc. Fortunatamente, il layout è molto di più
leggibile, più simile all'istruzione PRINT USING del BASIC. Consideralo come quello di un povero nroff(1).

I formati, come i pacchetti e le subroutine, vengono dichiarati anziché eseguiti, quindi potrebbero farlo
verificarsi in qualsiasi punto del programma. (Di solito è meglio tenerli tutti insieme però.)
Hanno il proprio spazio dei nomi diverso da tutti gli altri "tipi" in Perl. Ciò significa che
se hai una funzione chiamata "Foo", non è la stessa cosa che avere un formato chiamato
"Pippo". Tuttavia, il nome predefinito per il formato associato a un dato filehandle è
uguale al nome del filehandle. Pertanto, viene denominato il formato predefinito per STDOUT
"STDOUT" e il formato predefinito per il filehandle TEMP è denominato "TEMP". Sembrano semplicemente
Stesso. Non lo sono.

I formati dei record di output sono dichiarati come segue:

formato NOME =
ELENCOFORM
.

Se il nome viene omesso, viene definito il formato "STDOUT". Un singolo "." nella colonna 1 è abituato
terminare un formato. FORMLIST è costituito da una sequenza di righe, ciascuna delle quali può essere una di
tre tipi:

1. Un commento, indicato inserendo un '#' nella prima colonna.

2. Una riga "immagine" che fornisce il formato per una riga di output.

3. Una riga di argomento che fornisce valori da inserire nella riga dell'immagine precedente.

Le righe immagine contengono definizioni di campi di output, mescolate con testo letterale. Questi
le linee non subiscono alcun tipo di interpolazione variabile. Vengono create le definizioni dei campi
da un set di caratteri, per iniziare ed estendere un campo alla larghezza desiderata. Questo è
il set completo di caratteri per le definizioni dei campi:

@ inizio del campo regolare
^ inizio del campo speciale
< carattere pad per la giustificazione a sinistra
| carattere pad per la centratura
> carattere pad per la giusta giustificazione
# carattere pad per un campo numerico giustificato a destra
0 invece del primo #: numero del pad con zeri iniziali
. punto decimale all'interno di un campo numerico
... termina un campo di testo, mostra "..." come prova di troncamento
@* campo a larghezza variabile per un valore su più righe
^* campo a larghezza variabile per la riga successiva di un valore su più righe
~ sopprimi la riga con tutti i campi vuoti
~~ ripeti la riga finché tutti i campi non sono esauriti

Ogni campo in una riga di immagine inizia con "@" (at) o "^" (accento circonflesso), a indicare cosa
chiameremo, rispettivamente, campo "normale" o "speciale". La scelta dei caratteri pad
determina se un campo è testuale o numerico. Gli operatori tilde non fanno parte di a
campo. Vediamo nel dettaglio le varie possibilità.

Testo campi
La lunghezza del campo viene fornita riempiendo il campo con più "" o
"|" caratteri per specificare un campo non numerico con, rispettivamente, giustificazione a sinistra,
giusta giustificazione o centratura. Per un campo regolare, il valore (fino al primo
newline) viene preso e stampato in base alla giustificazione selezionata, troncando l'eccesso
caratteri. Se termini un campo di testo con "...", verranno visualizzati tre punti se il file
il valore viene troncato. Un campo di testo speciale può essere utilizzato per creare testo rudimentale su più righe
riempimento dei blocchi; vedere "Utilizzo della modalità di riempimento" per i dettagli.

Esempio:
formato STDOUT =
@>>>>>
"sinistra", "centro", "destra"
.
Produzione:
sinistra centro destra

Numerico campi
L'utilizzo di "#" come carattere di riempimento specifica un campo numerico, con giustificazione a destra. UN
facoltativo "." definisce la posizione del punto decimale. Con uno "0" (zero) al posto di
primo "#", il numero formattato verrà riempito con zeri iniziali, se necessario. UN
il campo numerico speciale viene oscurato se il valore non è definito. Se il valore risultante
supererebbe la larghezza specificata, il campo viene riempito con "#" come prova di overflow.

Esempio:
formato STDOUT =
@### @.### @##.### @### @### ^####
42, 3.1415, indef, 0, 10000, indef
.
Produzione:
42 3.142 0.000 0 ####

Settore @* per Larghezza variabile Multi-linea Testo
Il campo "@*" può essere utilizzato per stampare valori su più righe, non troncati; dovrebbe (ma
non è necessario) apparire da solo su una riga. L'avanzamento riga finale viene interrotto, ma tutti gli altri
i caratteri vengono emessi alla lettera.

Settore ^* per Larghezza variabile Una riga alla volta Testo
Come "@*", questo è un campo a larghezza variabile. Il valore fornito deve essere una variabile scalare.
Perl inserisce la prima riga (fino al primo "\n") del testo nel campo, quindi la taglia
dalla parte anteriore della stringa in modo che la prossima volta che si fa riferimento alla variabile, più di
il testo può essere stampato. La variabile sarà non è un da ristrutturare.

Esempio:
$testo = "riga 1\nriga 2\nriga 3";
formato STDOUT =
Testo: ^*
$testo
~~ ^*
$testo
.
Produzione:
Testo: riga 1
Linea 2
Linea 3

specificando Valori
I valori vengono specificati nella riga di formato successiva nello stesso ordine dell'immagine
campi. Le espressioni che forniscono i valori devono essere separate da virgole. Sono tutti
valutato in un contesto di elenco prima che la riga venga elaborata, quindi una singola espressione di elenco
potrebbe produrre più elementi dell'elenco. Le espressioni possono essere estese a più di una
riga se racchiusa tra parentesi graffe. Se è così, la graffa di apertura deve essere la prima pedina sulla prima
linea. Se un'espressione restituisce un numero con una parte decimale e se il
l'immagine corrispondente specifica che la parte decimale dovrebbe apparire nell'output (that
è qualsiasi immagine tranne i caratteri "#" multipli senza un "." incorporato), il carattere
utilizzato per il punto decimale è determinato dalla locale LC_NUMERIC corrente se "usa locale"
è in vigore. Ciò significa che, se, ad esempio, accade l'ambiente di runtime
specificare una locale tedesca, "," verrà utilizzato al posto del "." predefinito. Vedi perllocale e
"AVVERTENZE" per ulteriori informazioni.

utilizzando Riempire Moda
Sui campi di testo il cursore abilita una sorta di modalità di riempimento. Invece di un'espressione arbitraria,
il valore fornito deve essere una variabile scalare che contiene una stringa di testo. Perl mette il
porzione successiva del testo nel campo, quindi taglia la parte anteriore della stringa in questo modo
che la prossima volta che si farà riferimento alla variabile, sarà possibile stampare una parte maggiore del testo. (SÌ,
ciò significa che la variabile stessa viene alterata durante l'esecuzione del file write () chiamare e
non viene ripristinato.) La porzione successiva del testo è determinata da un'interruzione di riga grossolana
algoritmo. È possibile utilizzare il carattere di ritorno a capo ("\r") per forzare un'interruzione di riga. Puoi
cambiare quali caratteri è consentito interrompere modificando la variabile $: (ovvero
$FORMAT_LINE_BREAK_CHARACTERS se stai utilizzando il modulo inglese) all'elenco dei file desiderati
caratteri.

Normalmente utilizzeresti una sequenza di campi in uno stack verticale associato agli stessi
variabile scalare per stampare un blocco di testo. Potresti voler terminare il campo finale con
il testo "...", che apparirà nell'output se il testo fosse troppo lungo per apparire nel suo file
interezza.

Soppressione Linee Dove Tutti campi sia vuoto
Utilizzando i campi con cursore è possibile produrre righe in cui tutti i campi sono vuoti. Puoi sopprimerlo
righe inserendo un carattere "~" (tilde) in un punto qualsiasi della riga. La tilde sarà
tradotto in uno spazio al momento dell'output.

evento ricorrente Formato Linee
Se inserisci due caratteri tilde contigui "~~" ovunque in una riga, la riga sarà
ripetuto fino all'esaurimento di tutti i campi della riga, cioè indefiniti. Per speciale
(accento circonflesso) questo si verificherà prima o poi, ma se utilizzi un campo di testo at
varietà, è meglio che l'espressione che fornisci non dia sempre lo stesso valore per sempre!
("shift(@f)" è un semplice esempio che funzionerebbe.) Non utilizzare un campo numerico normale (at)
in tali righe, perché non rimarrà mai vuoto.

Top of Modulo Processando
Per impostazione predefinita, l'elaborazione all'inizio del modulo è gestita da un formato con lo stesso nome di quello corrente
filehandle con "_TOP" concatenato ad esso. Viene attivato nella parte superiore di ogni pagina. Vedere
"scrivi" in perlfunc.

Esempi:

# una relazione sul /etc/passwd filetto
formato STDOUT_TOP =
File password
Nome Login Ufficio Uid Gid Casa
-------------------------------------------------- ----------------
.
formato STDOUT =
@>>> @>>>> @<<<<<<<<<<<<<<<<<
$nome, $login, $ufficio,$uid,$gid, $home
.

# una segnalazione da un modulo di segnalazione di bug
formato STDOUT_TOP =
Rapporti Bug
@>>>>>>>>>>>>>>>>>>>>>>>
$sistema, $%, $data
-------------------------------------------------- ----------------
.
formato STDOUT =
Oggetto: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<
$soggetto
Indice: @<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<< <<<<<<<<<<
$indice, $descrizione
Priorità: @<<<<<<<<<< Data: @<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<<<<<<< <<
$ priorità, $ data, $ descrizione
Da: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<< <<<<<<<<<<<
$da, $descrizione
Assegnato a: @<<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<<<< <<<<<
$programmatore, $descrizione
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<
$descrizione
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<
$descrizione
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<
$descrizione
~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<
$descrizione
~ ^<<<<<<<<<<<<<<<<<<<<<<<...
$descrizione
.

È possibile mescolare stampare()s con write ()è sullo stesso canale di uscita, ma lo farai
devi gestire "$-" ($FORMAT_LINES_LEFT) da solo.

Formato Variabili
Il nome del formato corrente è memorizzato nella variabile $~ ($FORMAT_NAME) e nel top corrente
del nome del formato del modulo è in $^ ($FORMAT_TOP_NAME). Viene memorizzato il numero della pagina di output corrente
in $% ($FORMAT_PAGE_NUMBER) e il numero di righe sulla pagina è in $=
($FORMAT_LINES_PER_PAGE). L'eventuale svuotamento automatico dell'output su questo handle è archiviato in $|
($OUTPUT_AUTOFLUSH). L'output della stringa prima di ogni parte superiore della pagina (tranne la prima) è
memorizzato in $^L ($FORMAT_FORMFEED). Queste variabili sono impostate in base al filehandle, quindi
avrai bisogno di Selezionare() in uno diverso per influenzarli:

seleziona((seleziona(OUTF),
$~ = "Il mio_altro_formato",
$^ = "Il mio_formato_principale"
)[0]);

Piuttosto brutto, eh? È un idioma comune però, quindi non essere troppo sorpreso quando lo vedi.
Puoi almeno usare una variabile temporanea per contenere il filehandle precedente: (questo è much
approccio migliore in generale, perché non solo migliora la leggibilità, ma ora hai un file
fase intermedia nell'espressione da percorrere in un unico passaggio da parte del debugger):

$ofh = seleziona(OUTF);
$~ = "My_Other_Format";
$^ = "Il mio_formato_principale";
select($ofh);

Se usi il modulo inglese, puoi anche leggere i nomi delle variabili:

Usa l'inglese;
$ofh = seleziona(OUTF);
$FORMAT_NAME = "Il mio_altro_formato";
$FORMAT_TOP_NAME = "Il mio_formato_principale";
select($ofh);

Ma hai ancora quelli divertenti Selezionare()S. Quindi usa semplicemente il modulo FileHandle. Ora tu
può accedere a queste variabili speciali utilizzando invece nomi di metodo in minuscolo:

utilizzare FileHandle;
format_name OUTF "My_Other_Format";
format_top_name OUTF "My_Top_Format";

Molto meglio!

NOTE


Poiché la riga dei valori può contenere espressioni arbitrarie (per i campi at, non caret
campi), è possibile affidare elaborazioni più sofisticate ad altre funzioni, come sprintf ()
o uno dei tuoi. Per esempio:

formato Ident =
@<<<<<<<<<<<<<<
&comunica($n)
.

Per inserire un simbolo reale o un cursore nel campo, procedi come segue:

formato Ident =
Ho una @ qui.
"@"
.

Per centrare un'intera riga di testo, fai qualcosa del genere:

formato Ident =
@||||||||||||||||||||||||||||||||||||||||||||||
"Qualche riga di testo"
.

Tuttavia, non esiste un modo integrato per dire "spostalo sul lato destro della pagina".
è largo." Devi specificare dove va. I veramente disperati possono generare il loro
proprio formato al volo, in base al numero corrente di colonne, quindi eval () esso:

$formato = "formato STDOUT = \n"
. '^' . '<' x $cols . "\N"
. '$voce' . "\N"
. "\t^" . "<" x ($cols-8) . "~~\n"
. '$voce' . "\N"
. ".\N";
stampa $formato se $Debug;
eval $formato;
muori $@ se $@;

Il che genererebbe un formato simile a questo:

formato STDOUT =
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<
$voce
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <~~
$voce
.

Ecco un piccolo programma che è un po' come FMT(1)

formato =
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~~
$_

.

$/ = '';
mentre (<>) {
s/\s*\n\s*/ /g;
Scrivi;
}

piè di pagina
Sebbene $FORMAT_TOP_NAME contenga il nome del formato dell'intestazione corrente, non esiste
meccanismo corrispondente per fare automaticamente la stessa cosa per un piè di pagina. Non sapere come
un formato sarà grande finché non lo valuterai come uno dei problemi maggiori. E 'acceso
la lista delle cose da fare.

Ecco una strategia: se hai un piè di pagina a dimensione fissa, puoi ottenere i piè di pagina selezionando
$FORMAT_LINES_LEFT prima di ciascuno write () e stampa tu stesso il piè di pagina, se necessario.

Ecco un'altra strategia: apri una pipe verso te stesso, usando "open(MYSELF, "|-")" (vedi "open"
in perlfunc) e sempre write () a ME STESSO invece che a STDOUT. Chiedi a tuo figlio di elaborare
massaggia il suo STDIN per riorganizzare intestazioni e piè di pagina come preferisci. Non molto conveniente,
ma fattibile.

Accesso formattazione Interni
Per l'accesso di basso livello al meccanismo di formattazione, è possibile utilizzare riga del modulo() e accedi a $^A
(la variabile $ACCUMULATOR) direttamente.

Per esempio:

$str = riga del modulo <<'FINE', 1,2,3;
@>>
FINE

print "Wow, ho appena memorizzato '$^A' nell'accumulatore!\n";

Oppure per fare un scrivi() subroutine, che è quello di write () che cosa sprintf () è printf ()Di
Questo:

usa la carpa;
sottoscrivi {
gracchia "utilizzo: scrivi PICTURE ARGS" a meno che @_;
il mio $formato = spostamento;
$^A = "";
riga del modulo($formato,@_);
restituisce $^A;
}

$stringa = swrite(<<'FINE', 1, 2, 3);
Controllami
@>>
FINE
stampa $stringa;

AVVERTENZE


Il punto solitario che termina un formato può anche terminare prematuramente un messaggio di posta che passa attraverso a
mailer Internet configurato in modo errato (e in base all'esperienza, tale configurazione errata è la regola,
non l'eccezione). Pertanto, quando invii il codice del formato tramite posta, dovresti rientrarlo in questo modo
che il punto di fine formato non sia sul margine sinistro; ciò impedirà l'interruzione dell'SMTP.

Le variabili lessicali (dichiarate con "my") non sono visibili all'interno di un formato a meno che il formato
è dichiarato nell'ambito della variabile lessicale.

Se l'ambiente di un programma specifica una locale LC_NUMERIC ed è attivo "usa locale".
quando viene dichiarato il formato, la locale viene utilizzata per specificare il carattere del punto decimale
output formattato. L'output formattato non può essere controllato da "usa locale" nel momento in cui
write () è chiamato. Vedi perllocale per ulteriori discussioni sulla gestione della localizzazione.

All'interno delle stringhe che devono essere visualizzate in un campo di testo a lunghezza fissa, ogni controllo
il carattere è sostituito da uno spazio. (Ma ricorda il significato speciale di "\r" quando usi
modalità riempimento.) Questo viene fatto per evitare disallineamenti quando i caratteri di controllo "scompaiono" su alcuni
mezzi di uscita.

Utilizza perform online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad




×
Cookie per pubblicità
❤️Fai acquisti, prenota o acquista qui: nessun costo, aiuta a mantenere i servizi gratuiti.