EnglishFranceseSpagnolo

Favicon di OnWorks

perl5005delta - Online nel Cloud

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

Questo è il comando perl5005delta 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


perl5005delta - novità per perl5.005

DESCRIZIONE


Questo documento descrive le differenze tra la versione 5.004 e questa.

Chi siamo , il nuovi versioning sistema


Perl è ora sviluppato su due binari: un percorso di manutenzione che effettua piccoli e sicuri aggiornamenti a
versioni di produzione rilasciate con enfasi sulla compatibilità; e un percorso di sviluppo che
persegue un'evoluzione più aggressiva. Rilasci di manutenzione (che dovrebbero essere considerati
qualità di produzione) hanno numeri di sovversione che vanno da 1 a 49 e sviluppo
le release (che dovrebbero essere considerate di qualità "alpha") vanno da 50 a 99.

Perl 5.005 è il prodotto combinato del nuovo schema di sviluppo dual-track.

Incompatibile Modifiche


ATTENZIONE: Si versione is non binario compatibile con Perl 5.004
A partire da Perl 5.004_50 ci sono stati molti cambiamenti profondi e di vasta portata al linguaggio
interni. Se hai estensioni caricate dinamicamente che hai creato con perl 5.003 o
5.004, puoi continuare a usarli con 5.004, ma dovrai ricostruire e reinstallare
quelle estensioni per usarle 5.005. Vedere INSTALLARE per istruzioni dettagliate su come
l'aggiornamento.

Predefinito installazione La struttura ha cambiato
Le nuove impostazioni predefinite di Configura sono progettate per consentire un aggiornamento graduale da 5.004 a 5.005, ma
dovresti leggere INSTALLARE per una discussione dettagliata dei cambiamenti al fine di adattarli a
il tuo sistema.

Perl Fonte Compatibilità
Quando nessuna delle funzionalità sperimentali è abilitata, dovrebbero essere visibili pochissimi utenti
Problemi di compatibilità dei sorgenti Perl.

Se i thread sono abilitati, si applicano alcune avvertenze. @_ e $_ diventano variabili lessicali. Il
l'effetto di questo dovrebbe essere in gran parte trasparente per l'utente, ma ci sono alcuni limiti
condizioni in cui l'utente dovrà essere a conoscenza dei problemi. Ad esempio, "locale(@_)"
risulta in un messaggio "Impossibile localizzare la variabile lessicale @_ ...". Questo può essere abilitato in a
versione futura.

Sono state introdotte alcune nuove parole chiave. Questi sono generalmente tenuti ad avere molto poco
impatto sulla compatibilità. Vedere "Nuova parola chiave "INIT"", "Nuova parola chiave "lock" e "Nuovo "qr//"
operatore".

Alcune bareword ora sono riservate. L'uso di questi provocherà un avvertimento se lo hai chiesto
per loro con l'interruttore "-w". Vedere ""nostro" è ora una parola riservata".

C Fonte Compatibilità
Ci sono stati un gran numero di cambiamenti negli interni per supportare le nuove funzionalità in
questa versione.

· I sorgenti principali ora richiedono il compilatore ANSI C

Un compilatore ANSI C è ora necessario per costruire perl. Vedere INSTALLARE.

· Tutte le variabili globali Perl devono ora essere referenziate con un prefisso esplicito

Tutte le variabili globali Perl che sono visibili per essere utilizzate dalle estensioni ora hanno un "PL_"
prefisso. Le nuove estensioni dovrebbero "non" fare riferimento a perl globali con i loro nomi non qualificati.
Per preservare la sanità mentale, forniamo una compatibilità con le versioni precedenti limitata per i globali che sono
essendo ampiamente usati come "sv_undef" e "na" (che ora dovrebbe essere scritto come
"PL_sv_undef", "PL_na" ecc.)

Se trovi che la tua estensione XS non si compila più perché un perl globale è
non visibile, prova ad aggiungere un prefisso "PL_" al globale e ricostruisci.

È fortemente raccomandato che tutte le funzioni nell'API Perl che non iniziano con
"perl" essere referenziato con un prefisso "Perl_". I nomi delle funzioni nude senza il
Il prefisso "Perl_" è ​​supportato con le macro, ma questo supporto potrebbe cessare in futuro
rilasciare.

Vedi perlapi.

· L'abilitazione dei thread ha problemi di compatibilità con la sorgente

Perl costruito con threading abilitato richiede estensioni per utilizzare la nuova macro "dTHR" per
inizializzare l'handle per accedere ai dati per thread. Se vedi un errore del compilatore che
parla della variabile "thr" non dichiarata (quando si costruisce un modulo che ha XS
codice), è necessario aggiungere "dTHR;" all'inizio del blocco che ha generato l'errore.

La funzione API "perl_get_sv("@",GV_ADD)" dovrebbe essere usata invece che direttamente
accedere a globali perl come "GvSV(errgv)". La chiamata API è retrocompatibile con
perls esistenti e fornisce la compatibilità dei sorgenti con il threading è abilitato.

Vedere "Compatibilità sorgente C" per ulteriori informazioni.

Binario Compatibilità
Questa versione NON è binaria compatibile con le versioni precedenti. Tutte le estensioni dovranno essere
ricompilato. Ulteriori binari compilati con i thread abilitati sono incompatibili con i binari
costruito senza. Questo dovrebbe essere in gran parte trasparente per l'utente, poiché tutti i binari sono incompatibili
le configurazioni hanno il proprio nome di architettura univoco e i binari di estensione ottengono
installati in posizioni uniche. Ciò consente la coesistenza di più configurazioni nel
stessa gerarchia di directory. Vedere INSTALLARE.

Sicurezza correzioni può influenzare compatibilità
Sono state corrette alcune perdite e omissioni di contaminazione. Questo può portare a "fallimento" di
script che funzionavano con versioni precedenti. Compilazione con -DINCOMPLETE_TAINTS
fornisce un perl con quantità minime di modifiche al comportamento di contaminazione. Ma nota che
il perl risultante avrà insicurezze note.

I Oneliner con l'opzione "-e" non creano più file temporanei.

Relaxed nuovi obbligatorio avvertenze introdotto in 5.004
Molti nuovi avvisi introdotti nella 5.004 sono stati resi facoltativi. Alcuni di questi
gli avvertimenti sono ancora presenti, ma le nuove funzionalità di perl li rendono meno spesso un problema. Vedere
"Nuova diagnostica".

Licenze
Perl ha un nuovo contratto sociale per i contributori. Vedere Porting/Contratto.

La licenza inclusa in gran parte della documentazione Perl è cambiata. La maggior parte del Perl
la documentazione era precedentemente sotto l'implicita GNU General Public License o Artistic
Licenza (a scelta dell'utente). Ora gran parte della documentazione afferma inequivocabilmente che
termini in base ai quali può essere distribuito. Questi termini sono in generale molto meno restrittivi
rispetto alla GNU GPL. Vedere perl e le singole manpage perl elencate in esso.

Nucleo Modifiche


Discussioni
ATTENZIONE: Il threading è considerato un sperimentale caratteristica. Dettagli dell'implementazione
possono cambiare senza preavviso. Ci sono limitazioni note e alcuni bug. Questi sono previsti
da correggere nelle versioni future.

See LEGGIMI.thread.

Compiler
ATTENZIONE: Il compilatore e gli strumenti correlati sono considerati sperimentale. Le funzionalità potrebbero cambiare
senza preavviso e sono noti limiti e bug. Poiché il compilatore è completamente
esterno a perl, la configurazione predefinita lo compilerà e lo installerà.

Il compilatore produce tre diversi tipi di trasformazioni di un programma perl. il C
il backend genera codice C che cattura lo stato di perl appena prima dell'inizio dell'esecuzione. Esso
elimina le spese generali in fase di compilazione del normale interprete perl, ma il tempo di esecuzione
le prestazioni rimangono relativamente le stesse. Il backend CC genera codice C ottimizzato
equivalente al percorso del codice in fase di esecuzione. Il backend CC ha un potenziale maggiore per i grandi
ottimizzazioni, ma attualmente sono implementate solo alcune ottimizzazioni. Il Bytecode
il backend genera una rappresentazione in bytecode indipendente dalla piattaforma dell'interprete
stato appena prima dell'esecuzione. Pertanto, il back-end Bytecode elimina anche gran parte del
sovraccarico di compilazione dell'interprete.

Il compilatore viene fornito con diverse utili utilità.

"B::Lint" è un modulo sperimentale per rilevare e avvertire di codice sospetto, in particolare
i casi che l'interruttore "-w" non rileva.

"B::Deparse" può essere usato per demistificare il codice perl e capire come perl ottimizza determinati
costruisce.

"B::Xref" genera report di riferimento incrociato di tutte le definizioni e l'uso delle variabili,
subroutine e formati in un programma.

"B::Showlex" mostra a colpo d'occhio le variabili lessicali usate da una subroutine o da un file.

"perlcc" è un semplice frontend per la compilazione di perl.

Vedere "ext/B/README", B e i rispettivi moduli del compilatore.

Regular Espressioni
Il motore delle espressioni regolari di Perl è stato seriamente revisionato e molti nuovi costrutti
sono supportati. Diversi bug sono stati corretti.

Ecco un riepilogo dettagliato:

Molte ottimizzazioni nuove e migliorate
Modifiche al motore RE:

Nodi non necessari rimossi;
Sottostringhe unite insieme;
Nuovi tipi di nodi da elaborare (SUBEXPR)* ed espressioni simili
rapidamente, utilizzato se SUBEXPR non ha effetti collaterali e corrisponde
stringhe della stessa lunghezza;
Migliori ottimizzazioni tramite la ricerca di sottostringhe costanti;
Migliore ricerca di sottostringhe di costanti ancorate da $ ;

Modifiche al codice Perl utilizzando il motore RE:

Ulteriori ottimizzazioni a s/longer/short/;
study() non funzionava;
/blah/ può essere ottimizzato per un analogo di index() se $& $` $' non è visto;
Rimossa la copia non necessaria della stringa confrontata;
Viene copiata solo la parte corrispondente della stringa se $` $' non è stato visualizzato;

Molte correzioni di bug
Nota che qui sono elencate solo le principali correzioni di bug. Vedere Modifiche per gli altri.

Il backtracking potrebbe non ripristinare l'inizio di $3.
Nessun feedback se il conteggio massimo per * o + su sottoespressione "complessa"
è stato raggiunto, in modo simile (ma in fase di compilazione) per {3,34567}
Restrizioni primitive sul conteggio massimo introdotte per diminuire a
possibilità di segfault;
(ZERO-LENGTH)* potrebbe segfault;
(ZERO-LENGTH)* era vietato;
RE lunghe non erano consentite;
/RE/g potrebbe saltare le partite nella stessa posizione dopo a
corrispondenza di lunghezza zero;

Nuovi costrutti di espressioni regolari
Sono supportati i seguenti nuovi elementi di sintassi:

(?<=RE)
(?
(?{ CODICE })
(?ix)
(?io:RE)
(?(COND)SI_RE|NO_RE)
(?>RE)
\z

Nuovo operatore per le espressioni regolari precompilate
Vedere "Nuovo operatore "qr//"".

Altri miglioramenti
Migliore output di debug (possibilmente con i colori),
anche da Perl senza debug;
Il codice del motore RE ora sembra C, non come assembler;
Comportamento di RE modificabile dalla direttiva "use re";
Documentazione migliorata;
Suite di test notevolmente estesa;
Sintassi [:^upper:] ecc., riservata all'interno di classi di caratteri;

Modifiche incompatibili
(?i) localizzato all'interno del gruppo racchiudente;
$( non è più interpolato in RE;
/RE/g può corrispondere alla stessa posizione (con lunghezza diversa da zero)
dopo una corrispondenza di lunghezza zero (correzione di bug).

Vedi perlre e perlop.

Servizio malloc ()
Vedere il banner all'inizio di "malloc.c" per i dettagli.

quicksort is internamente implementato
Perl ora contiene il proprio altamente ottimizzato qsort() routine. Il nuovo qsort() è resistente
a funzioni di confronto incoerenti, quindi "sort()" di Perl non provocherà alcun coredump
di più quando vengono fornite subroutine di ordinamento scritte male. (Alcune librerie C "qsort()" che erano
utilizzato in precedenza per avere questo problema.) Nei nostri test, è richiesto il nuovo "qsort()"
il numero minimo di confronti a coppie in media, tra tutti i "qsort()" conosciuti
implementazioni.

Vedere "perlfunc/sort".

Affidabile Segnali
La gestione del segnale di Perl è soggetta a crash casuali, perché i segnali arrivano
in modo asincrono e il runtime Perl non rientra in momenti arbitrari.

Tuttavia, è disponibile un'implementazione sperimentale di segnali affidabili quando i thread sono
abilitato. Vedere "Filo::Segnale". Vedi anche INSTALLARE per come costruire un Perl in grado di
thread.

Affidabile pila puntatori
Gli interni ora riallocano lo stack perl solo in momenti prevedibili. In particolare,
le chiamate magiche non innescano mai riallocazioni dello stack, perché tutte le rientranze del
il runtime viene gestito utilizzando uno "stack of stack". Questo dovrebbe migliorare l'affidabilità della cache
impilare i puntatori negli interni e negli XSUB.

Più generoso trattamento of trasporto problemi
Perl era solito lamentarsi se incontrava ritorni a capo letterali negli script. ora lo sono
per lo più trattati come spazi bianchi all'interno del testo del programma. All'interno delle stringhe letterali e qui
documenti, i ritorni a capo letterali vengono ignorati se si verificano in coppia con avanzamenti di riga, oppure
vengono interpretati come spazi bianchi se sono isolati. Questo comportamento significa che letterale
I ritorni a capo nei file dovrebbero essere evitati. Puoi ottenere il più vecchio, più compatibile (ma
meno generoso) definendo il simbolo del preprocessore "PERL_STRICT_CR" durante la costruzione
perla. Ovviamente, tutto questo non ha nulla a che fare con il modo in cui sono gli escape come "\r"
gestito all'interno di stringhe.

Nota che questo non ti permette in qualche modo magicamente di mantenere tutti i file di testo in formato DOS.
Il trattamento generoso si applica solo ai file che perl stesso analizza. Se il tuo compilatore C
non consente i ritorni a capo nei file, potresti comunque non essere in grado di creare moduli che
bisogno di un compilatore C.

Memorie perdite
"substr", "pos" e "vec" non perdono più memoria se usati nel contesto lvalue. Molti
sono state risolte piccole perdite che hanno avuto un impatto sulle applicazioni che incorporano più interpreti.

Meglio supporto per multiplo interpreti
L'opzione di build-time "-DMULTIPLICITY" ha avuto molti dettagli rielaborati. Alcuni
in precedenza le variabili globali che avrebbero dovuto essere per interprete ora lo sono. Con cura,
questo consente agli interpreti di chiamarsi a vicenda. Vedere l'estensione "PerlInterp" su CPAN.

Comportamento of Locale() on schieramento e hash elementi is adesso ben definita
Vedere "Valori temporanei tramite Locale()" in perlsub.

"%!" is in modo trasparente legato a , il Errno modulo
Vedi perlvar ed Errno.

Pseudo-hash sono supportato
Vedi perlref.

"EXPR foreach ESPR" is supportato
Vedi perlsyn.

Parole può be a livello globale sovrascritto
Vedi perlsub.

$^E is significativo on Win32
Vedi perlvar.

"per ciascuno (1..1000000)" ottimizzati
"foreach (1..1000000)" è ora ottimizzato in un ciclo di conteggio. Non cerca di allocare
un elenco di 1000000 dimensioni più.

"Più::" può be utilizzato as implicitamente citato pacchetto Nome
Le bareword causavano un comportamento non intuitivo quando una subroutine con lo stesso nome di un pacchetto
capitato di essere definito. Quindi, "new Foo @args", usa il risultato della chiamata a "Foo()"
invece di "Foo" essere trattato come un letterale. Il modo consigliato per scrivere bareword in
lo slot oggetto indiretto è "new Foo:: @args". Nota che viene chiamato il metodo "new()"
con un primo argomento di "Foo", non "Foo::" quando lo fai.

"esiste" $Foo::{Bar::}" test esistenza of a pacchetto
Era impossibile verificare l'esistenza di un pacchetto senza crearlo effettivamente
prima di. Ora "exists $Foo::{Bar::}" può essere utilizzato per verificare se lo spazio dei nomi "Foo::Bar" ha
stato creato.

Meglio località supporto
Vedi perllocale.

Sperimentale supporto per 64-bit piattaforme
Perl5 ha sempre avuto il supporto a 64 bit su sistemi con 64 bit lunghi. A partire da 5.005,
l'inizio del supporto sperimentale per i sistemi con 32 bit long e 64 bit "long long"
interi è stato aggiunto. Se aggiungi -DUSE_LONG_LONG ai tuoi ccflags in config.sh (o
definirlo manualmente in perl.h) quindi perl verrà compilato con il supporto 'long long'. Là
saranno molti avvertimenti del compilatore e il perl risultante potrebbe non funzionare su tutti i sistemi. Là
ci sono molti altri problemi relativi alle estensioni e alle librerie di terze parti. Questa opzione esiste
per consentire alle persone di lavorare su tali questioni.

prototipo() problemi utile sul risultato on incorporati
Vedere "prototipo" in perlfunc.

estesa supporto per eccezione manipolazione
"die()" ora accetta un valore di riferimento e $@ viene impostato su quel valore nelle trap delle eccezioni.
Ciò rende possibile propagare oggetti eccezione. Questo è un non documentato
sperimentale caratteristica.

ri-benedizione in DISTRUGGERE() supportato per concatenamento DISTRUGGERE() metodi
Vedi "Distruttori" in perlobj.

Tutto "Printf" formato conversioni sono gestito internamente
Vedere "printf" in perlfunc.

Nuovo "DENTRO" parola chiave
I sottotitoli "INIT" sono come "BEGIN" e "END", ma vengono eseguiti appena prima del runtime perl
inizia l'esecuzione. ad esempio, il compilatore Perl fa uso di blocchi "INIT" per inizializzare e
risolvere i puntatori a XSUB.

Nuovo "serratura" parola chiave
La parola chiave "lock" è la primitiva fondamentale di sincronizzazione in thread perl. quando
i thread non sono abilitati, attualmente è un noop.

Per ridurre al minimo l'impatto sulla compatibilità della sorgente, questa parola chiave è "debole", ovvero qualsiasi definita dall'utente
subroutine con lo stesso nome lo sovrascrive, a meno che non sia stato visto un "use Thread".

Nuovo "qr//" operatore
L'operatore "qr//", che è sintatticamente simile agli altri operatori simili a virgolette, è
utilizzato per creare espressioni regolari precompilate. Questo modulo compilato può ora essere esplicitamente
passato in variabili e interpolato in altre espressioni regolari. Vedi perlop.

"nostro" is adesso a riservato parola
Chiamare una subroutine con il nome "nostro" ora provocherà un avviso quando si usa "-w"
interruttore.

Legato array sono adesso completamente supportato
Vedi Tie::Array.

Legato Maniglie supporto is better
Sono stati aggiunti diversi ganci mancanti. C'è anche una nuova classe base per TIEARRAY
implementazioni. Vedi Tie::Array.

argomento a substr
sottostr() ora può restituire e sostituire in un'unica operazione. Il quarto argomento opzionale è
la stringa di sostituzione. Vedere "substr" in perlfunc.

Negativo LUNGHEZZA argomento a giunzione
giunzione() con un argomento LENGTH negativo ora funziona in modo simile a quello che ha fatto LENGTH
sottostr(). In precedenza una LENGTH negativa era trattata come 0. Vedere "splice" in perlfunc.

magia lvalori sono adesso Scopri di più magico
Quando dici qualcosa come "substr($x, 5) = "ciao"", lo scalare restituito da sottostr() is
speciale, in quanto qualsiasi modifica ad esso influirà su $x. (Questo è chiamato un "valore magico"
perché un 'lvalue' è qualcosa sul lato sinistro di un'assegnazione.) Normalmente, questo è
esattamente quello che ti aspetteresti che accada, ma Perl usa la stessa magia se usi sottostr(),
pos (), o vec() in un contesto in cui potrebbero essere modificati, come prendere un riferimento con
"\" o come argomento per un sub che modifica @_. Nelle versioni precedenti, solo questa "magia"
è andato in un modo, ma ora cambia lo scalare a cui si riferisce la magia ($ x nell'esempio sopra)
influenzare anche il valore magico. Ad esempio, questo codice ora agisce in modo diverso:

$x = "ciao";
sottostampa {
$x = "ciao";
stampa $_[0], "\n";
}
printit(substr($x, 0, 5));

Nelle versioni precedenti, questo avrebbe stampato "ciao", ma ora stampa "g'bye".

<> adesso legge in record
Se $/ è un riferimento a un numero intero o uno scalare che contiene un numero intero, <> leggerà
record invece di righe. Per maggiori informazioni, vedere "$/" in perlvar.

supportato Piattaforme


Configure ha molti miglioramenti incrementali. La politica a livello di sito per la creazione di perl ora può
essere reso persistente, tramite Policy.sh. Configura registra anche gli argomenti della riga di comando utilizzati
in config.sh.

Nuovo Piattaforme
BeOS è ora supportato. Vedere LEGGIMI.beos.

DOS è ora supportato dagli strumenti DJGPP. Vedere LEGGIMI.dos (installato come perldos su alcuni
sistemi).

MiNT è ora supportato. Vedere LEGGIMI.mint.

MPE/iX è ora supportato. Vedere README.mpeix.

MVS (alias OS390, alias Open Edition) è ora supportato. Vedere LEGGIMI.os390 (installato come
perlos390 su alcuni sistemi).

Stratus VOS è ora supportato. Vedere LEGGIMI.vos.

Modifiche in esistente supporto
Il supporto per Win32 è stato notevolmente migliorato. Supporto per Perl Object, un incapsulamento C++ di
Perla. GCC e EGCS sono ora supportati su Win32. Vedere LEGGIMI.win32, alias perlwin32.

Il sistema di configurazione VMS è stato riscritto. Vedere LEGGIMI.vms (installato come LEGGIMI_vms on
alcuni sistemi).

I file dei suggerimenti per la maggior parte delle piattaforme Unix hanno visto miglioramenti incrementali.

moduli e pragmatico


Nuovo moduli
B Compilatore e strumenti Perl. Vedi B.

Dati::Dumper
Un modulo per stampare abbastanza dati Perl. Vedi Dati::Dumper.

Valore di scarico
Un modulo per scaricare i valori perl sullo schermo. Vedi valore di dump.

Errno
Un modulo per cercare gli errori in modo più conveniente. Vedi Errno.

File::Spec
Un'API portatile per le operazioni sui file.

ExtUtils::Installato
Interrogare e gestire i moduli installati.

ExtUtils::Lista dei pacchetti
Manipola i file .packlist.

Fatale
Fai in modo che funzioni/integrazioni abbiano successo o muoiano.

IPC::SysV
Costanti e altre infrastrutture di supporto per operazioni IPC System V in perl.

Test
Un framework per scrivere suite di test.

Cravatta::Array
Classe base per array legati.

Cravatta::Maniglia
Classe base per maniglie legate.

Filo
Creazione, manipolazione e supporto di thread Perl.

attr
Imposta gli attributi della subroutine.

campi
Campi di classe in fase di compilazione.

re Vari pragmata per controllare il comportamento delle espressioni regolari.

Modifiche in esistente moduli
Segno di riferimento
Ora puoi eseguire i test per x secondi invece di indovinare il numero giusto di test per
eseguire.

Tiene il tempo migliore.

Carpa
La carpa ha una nuova funzione chiocciare(). chiocciare() avverte, come carpa(), ma aggiunge anche uno stack
backtrace al messaggio di errore, come confessare().

CGI CGI è stato aggiornato alla versione 2.42.

Fctl
Aggiunte più costanti Fcntl: F_SETLK64, F_SETLKW64, O_LARGEFILE per grandi (più di
4G) accesso ai file (il supporto a 64 bit non funziona ancora, quindi non è necessario ottenerlo
eccessivamente eccitato), flag di comportamento di blocco Free/Net/OpenBSD F_FLOCK, F_POSIX, Linux
F_SHLCK e O_ACCMODE: la maschera di O_RDONLY, O_WRONLY e O_RDWR.

Matematica::Complesso
I metodi di accesso Re, Im, arg, abs, rho, theta, metodi can ($z->Rif()) ora anche
agire come mutatori ($z->Re(3)).

Matematica::Trig
Un po' di trigonometria radiale (cilindrica e sferica) aggiunta, ad esempio il
grande distanza del cerchio.

POSIX
POSIX ora ha i propri file di suggerimenti specifici della piattaforma.

File_DB
DB_File supporta la versione 2.x di Berkeley DB. Vedere "ext/DB_File/Changes".

Makemaker
MakeMaker ora supporta la scrittura di makefile vuoti, fornisce un modo per specificare quel sito
maschera() la politica dovrebbe essere rispettata. C'è anche un migliore supporto per la manipolazione di
file .packlist e ottenere informazioni sui moduli installati.

Estensioni che hanno file dipendenti e indipendenti dall'architettura
ora sono sempre installati completamente nelle posizioni dipendenti dall'architettura.
In precedenza, le parti condivisibili erano condivise sia tra architetture che tra perl
versioni ed erano quindi suscettibili di essere sovrascritti con versioni più recenti che potrebbero
hanno sottili incompatibilità.

CPAN
Vedere perlmodinstall e CPAN.

Cwd Cwd::cwd è più veloce sulla maggior parte delle piattaforme.

Utilità Modifiche


"h2ph" e le relative utilità sono state ampiamente riviste.

"perlcc", è disponibile un nuovo front-end sperimentale per il compilatore.

Il rozzo emulatore GNU "configure" è ora chiamato "configure.gnu" per evitare di essere calpestato
"Configura" in filesystem senza distinzione tra maiuscole e minuscole.

"perldoc" era piuttosto lento. Le funzioni più lente sono ora opzionali. In particolare,
le ricerche senza distinzione tra maiuscole e minuscole richiedono l'opzione "-i" e le ricerche ricorsive richiedono "-r". Puoi
imposta queste opzioni nella variabile d'ambiente "PERLDOC" per ottenere il vecchio comportamento.

Documentazione Modifiche


Config.pm ora ha un glossario di variabili.

Porting/patch.pod contiene istruzioni dettagliate su come creare e inviare patch per
perla.

perlport specifica le linee guida su come scrivere in modo portabile.

perlmodinstall descrive come recuperare e installare moduli dai siti "CPAN".

Alcune altre trappole Perl sono ora documentate. Vedi perltrap.

perlopentut fornisce un tutorial sull'uso Aperto().

perlreftut fornisce un tutorial sui riferimenti.

perlthrtut offre un tutorial sui thread.

Nuovo Diagnostica Ultrasuoni


Chiamata ambigua risolta come CORE::%s(), qualifica come tale o usa &
(W) Una subroutine che hai dichiarato ha lo stesso nome di una parola chiave Perl e tu hai
usava il nome senza titolo per chiamare l'uno o l'altro. Perl ha deciso di
chiama il builtin perché la subroutine non è importata.

Per forzare l'interpretazione come chiamata di subroutine, metti una e commerciale prima di
nome della subroutine o qualificare il nome con il relativo pacchetto. In alternativa, puoi importare
la subroutine (o fingere che sia importata con il pragma "use subs").

Per interpretarlo silenziosamente come operatore Perl, usa il prefisso "CORE::" sull'operatore
(es. "CORE::log($x)") o dichiarando che la subroutine è un metodo oggetto (vedi
"attr").

Indice errato durante la forzatura dell'array in hash
(F) L'indice cercato nell'hash trovato come lo 0'esimo elemento di uno pseudo-hash non è
legale. I valori dell'indice devono essere pari o superiori a 1. Vedi perlref.

Bareword "%s" si riferisce a un pacchetto inesistente
(W) Hai usato una bareword qualificata della forma "Foo::", ma il compilatore non ne ha viste altre
usi di quello spazio dei nomi prima di quel punto. Forse è necessario predichiarare un pacchetto?

Impossibile chiamare il metodo "%s" su un valore non definito
(F) Hai usato la sintassi di una chiamata al metodo, ma lo slot è stato riempito dal riferimento all'oggetto
o il nome del pacchetto contiene un valore non definito. Qualcosa del genere riprodurrà il
errore:

$RIFBADR = 42;
elaborare $BADREF 1,2,3;
$BADREF->process(1,2,3);

Impossibile controllare il filesystem dello script "%s" per nosuid
(P) Per qualche motivo non puoi controllare il filesystem dello script per nosuid.

Impossibile forzare l'array in hash
(F) Hai usato un array in cui era previsto un hash, ma l'array non ha informazioni su
come mappare dalle chiavi agli indici di array. Puoi farlo solo con array che hanno a
riferimento hash all'indice 0.

Non posso andare alla subroutine da una eval-string
(F) La chiamata "goto subroutine" non può essere utilizzata per saltare fuori da una "stringa" eval. (Voi
puoi usarlo per saltare fuori da un eval {BLOCK}, ma probabilmente non vorrai farlo.)

Impossibile localizzare l'elemento pseudo-hash
(F) Hai detto qualcosa come "local $ar->{'key'}", dove $ar è un riferimento a a
pseudo-hash. Non è stato ancora implementato, ma puoi ottenere un effetto simile con
localizzando direttamente l'elemento dell'array corrispondente: "local $ar->[$ar->[0]{'key'}]".

Impossibile utilizzare %%! perchè Errno.pm non è disponibile
(F) La prima volta che %! hash, perl carica automaticamente il modulo Errno.pm.
Il modulo Errno dovrebbe legare il %! hash per fornire nomi simbolici per $! errno
valori.

Impossibile trovare un numero operativo per "%s"
(F) Una stringa della forma "CORE::word" è stata data a prototipo(), ma non c'è un builtin
con il nome "parola".

Sintassi della classe di caratteri [. .] è riservato per future estensioni
(W) All'interno delle classi di caratteri delle espressioni regolari ([]) la sintassi che inizia con "[."
e che termina con ".]" è riservato per estensioni future. Se hai bisogno di rappresentare
quelle sequenze di caratteri all'interno di una classe di caratteri di un'espressione regolare, basta citare il
parentesi quadre con la barra rovesciata: "\[." e ".\]".

La sintassi della classe di caratteri [::] è riservata per estensioni future
(W) All'interno delle classi di caratteri delle espressioni regolari ([]) la sintassi che inizia con "[:"
e che termina con ":]" è riservato per estensioni future. Se hai bisogno di rappresentare
quelle sequenze di caratteri all'interno di una classe di caratteri di un'espressione regolare, basta citare il
parentesi quadre con la barra rovesciata: "\[:" e ":\]".

La sintassi della classe di caratteri [= =] è riservata per estensioni future
(W) All'interno delle classi di caratteri delle espressioni regolari ([]) la sintassi che inizia con "[="
e che termina con "=]" è riservato per estensioni future. Se hai bisogno di rappresentare
quelle sequenze di caratteri all'interno di una classe di caratteri di un'espressione regolare, basta citare il
parentesi quadre con la barra rovesciata: "\[=" e "=\]".

%s: Eval-group in un'espressione regolare non sicura
(F) Perl ha rilevato dati contaminati durante il tentativo di compilare un'espressione regolare che
contiene l'asserzione di larghezza zero "(?{ ... })", che non è sicura. Vedi "(?{ codice })" in
perlre e perlsec.

%s: Eval-group non consentito, usa re 'eval'
(F) Un'espressione regolare conteneva l'asserzione di larghezza zero "(?{ ... })", ma quella
Il costrutto è consentito solo quando è attivo il pragma "use re 'eval'". Vedi "(?{ codice
})" in perlre.

%s: gruppo di valutazione non consentito in fase di esecuzione
(F) Perl ha provato a compilare un'espressione regolare contenente la larghezza zero "(?{ ... })"
asserzione in fase di esecuzione, come farebbe quando il modello contiene valori interpolati.
Poiché si tratta di un rischio per la sicurezza, non è consentito. Se insisti, puoi ancora farlo
questo costruendo esplicitamente il modello da una stringa interpolata in fase di esecuzione e
usando quello in un eval (). Vedi "(?{ codice })" in perlre.

Benedizione esplicita a '' (supponendo che il pacchetto sia principale)
(W) Stai benedicendo un riferimento a una stringa di lunghezza zero. Questo ha l'effetto di
benedicendo il riferimento nel pacchetto main. Questo di solito non è quello che vuoi.
Considera di fornire un pacchetto di destinazione predefinito, ad esempio bless($ref, $p || 'MyPackage');

Cifra esadecimale illegale ignorata
(W) Potresti aver provato a usare un carattere diverso da 0 - 9 o A - F in un esadecimale
numero. Interpretazione del numero esadecimale interrotta prima dell'illegale
carattere.

Nessun campo array di questo tipo
(F) Hai provato ad accedere a un array come hash, ma il nome del campo utilizzato non è definito.
L'hash all'indice 0 dovrebbe mappare tutti i nomi di campo validi agli indici di array per farlo
lavoro.

Nessun campo "%s" nella variabile %s di tipo %s
(F) Hai provato ad accedere a un campo di una variabile digitata di cui il tipo non è a conoscenza
il nome del campo. I nomi dei campi vengono cercati nell'hash %FIELDS nel pacchetto type
in fase di compilazione. L'hash %FIELDS è solitamente impostato con il pragma 'fields'.

Memoria esaurita durante una richiesta ridicolmente grande
(F) Non puoi allocare più di 2^31+"piccola quantità" byte. Questo errore è molto probabile
essere causato da un errore di battitura nel programma Perl. ad es. $arr[ora] invece di $arr[$ora].

Iteratore di intervallo al di fuori dell'intervallo intero
(F) Uno (o entrambi) degli argomenti numerici dell'operatore di intervallo ".." sono al di fuori di
intervallo che può essere rappresentato internamente da numeri interi. Una possibile soluzione alternativa è
forza Perl a utilizzare l'incremento di stringa magica anteponendo "0" ai tuoi numeri.

Eredità ricorsiva rilevata durante la ricerca del metodo '%s' %s
(F) Durante l'invocazione di un metodo sono stati riscontrati più di 100 livelli di ereditarietà.
Probabilmente indica un ciclo non intenzionale nella gerarchia dell'ereditarietà.

Riferimento trovato dove previsto elenco di dimensioni pari
(W) Hai fornito un singolo riferimento in cui Perl si aspettava una lista con un numero pari di
elementi (per l'assegnazione a un hash). Questo di solito significa che hai usato l'hash anon
costruttore quando intendevi usare le parentesi. In ogni caso, un hash richiede chiave/valore
coppie.

%hash = { uno => 1, due => 2, }; # SBAGLIATO
%hash = [ qw/ un array anon / ]; # SBAGLIATO
%hash = ( uno => 1, due => 2, ); # Giusto
%hash = qw( uno 1 due 2 ); # anche bene

Valore non definito assegnato a typeglob
(W) Un valore indefinito è stato assegnato a un typeglob, a la "*foo = undef". questo sì
niente. È possibile che tu intenda davvero "undef *foo".

L'uso della parola riservata "%s" è deprecato
(D) La bareword indicata è una parola riservata. Le versioni future di perl potrebbero usarlo come
una parola chiave, quindi è meglio o citando esplicitamente la parola in un modo
appropriato per il suo contesto di utilizzo, o utilizzando un nome completamente diverso. L'avviso
può essere soppresso per i nomi di subroutine aggiungendo un prefisso "&" o usando a
qualificatore del pacchetto, ad esempio "&our()", o "Foo::our()".

perl: avviso: impostazione locale non riuscita.
(S) L'intero messaggio di avviso sarà simile a:

perl: avviso: impostazione locale non riuscita.
perl: avviso: per favore controlla che le tue impostazioni internazionali:
LC_ALL = "En_US",
LANG = (non impostato)
sono supportati e installati sul sistema.
perl: avviso: ritorno alla localizzazione standard ("C").

Esattamente quali erano le impostazioni internazionali non riuscite varia. In quanto sopra le impostazioni erano
che LC_ALL era "En_US" e LANG non aveva alcun valore. Questo errore significa che Perl
rilevato che tu e/o il tuo amministratore di sistema avete impostato la cosiddetta variabile
system ma Perl non poteva usare quelle impostazioni. Questo non era gravemente grave, fortunatamente:
esiste una "localizzazione predefinita" chiamata "C" che Perl può e utilizzerà, lo script sarà
correre. Prima di risolvere davvero il problema, tuttavia, riceverai lo stesso messaggio di errore
ogni volta che esegui Perl. Come risolvere davvero il problema può essere trovato in "LOCALE
PROBLEMI" in perllocale.

Obsoleto Diagnostica Ultrasuoni


Impossibile mktemp()
(F) il mktemp() la routine non è riuscita per qualche motivo durante il tentativo di elaborare a -e interruttore.
Forse il tuo / Tmp la partizione è piena o occupata.

Rimosso perché -e non usa più i file temporanei.

Impossibile scrivere nel file temporaneo per -e: %S
(F) La routine di scrittura non è riuscita per qualche motivo durante il tentativo di elaborare a -e interruttore.
Forse il tuo / Tmp la partizione è piena o occupata.

Rimosso perché -e non usa più i file temporanei.

Impossibile aprire il file temporaneo
(F) La routine di creazione non è riuscita per qualche motivo durante il tentativo di elaborare a -e interruttore.
Forse il tuo / Tmp la partizione è piena o occupata.

Rimosso perché -e non usa più i file temporanei.

regexp troppo grande
(F) L'attuale implementazione delle espressioni regolari usa gli short come offset di indirizzo
all'interno di una stringa. Sfortunatamente questo significa che se l'espressione regolare viene compilata in
più lungo di 32767, esploderà. Di solito quando vuoi un'espressione regolare questo
grande, c'è un modo migliore per farlo con più istruzioni. Vedi perle.

Configurazione Modifiche


Puoi usare "Configura -Uinstallusrbinperl" che fa sì che installperl salti l'installazione
perl anche come /usr/bin/perl. Questo è utile se preferisci non modificare / Usr / bin per alcuni
motivo o altro ma dannoso perché molti script presumono di trovare Perl in /usr/bin/perl.

Usa perl5005delta online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

  • 1
    Compilatore pascal gratuito
    Compilatore pascal gratuito
    Un compilatore Pascal a 32/64/16 bit per
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Game Boy
    Advance, Nintendo NDS e DOS;
    semanticamente compatibile con...
    Scarica il compilatore Pascal gratuito
  • 2
    Informazioni su Canon EOS DIGITAL
    Informazioni su Canon EOS DIGITAL
    Canon non ha il conteggio dell'otturatore
    incluso nelle informazioni EXIF ​​di un
    file immagine, al contrario di Nikon e
    Pentax. Non esiste una Canon ufficiale basata
    applicazione ...
    Scarica Informazioni su Canon EOS DIGITAL
  • 3
    Ritrovato
    Ritrovato
    rEFInd è un fork del boot rEFIt
    manager. Come rEFIt, rEFInd can
    rileva automaticamente l'avvio EFI installato
    caricatori e presenta una bella GUI
    menu delle opzioni di avvio...
    Scarica ritrovare
  • 4
    Express Luca GSI
    Express Luca GSI
    Questa pagina di download di SourceForge doveva
    concedere agli utenti di scaricare la mia fonte costruita
    GSI, basati sul grande di Phhusson
    opera. Costruisco sia Android Pie che
    Androide 1...
    Scarica ExpressLuke GSI
  • 5
    Incantatore di musica
    Incantatore di musica
    Music Caster è un lettore musicale da vassoio
    che ti consente di trasmettere la tua musica locale a un
    Dispositivo Google Cast. Alla prima corsa,
    dovrai fare clic sulla freccia nel tuo
    ta...
    Scarica il programma musicale
  • 6
    PyQt
    PyQt
    PyQt è l'associazione Python per
    Qt multipiattaforma di Digia
    quadro di sviluppo delle applicazioni. Esso
    supporta Python v2 e v3 e Qt v4 e
    Qt v5. PyQt è disponibile...
    Scarica PyQt
  • Di Più "

Comandi Linux

Ad