2012-04-28 12 views
5

Ho installato Active Perl (v5.14.2, 64-bit, per Windows) e il mio codice contenente use Switch; ha iniziato a fallire con l'errore Can't locate Switch.pm in @INC (@INC contains: C:/Perl64/site/lib C:/Perl64/lib .) at myfilename.pl line 3..Switch.pm mancante - Perl attivo x64/windows

La copia di switch.pm da una precedente installazione a 32 bit ha risolto il problema, ma non lo capisco. Nel frattempo è stato deprecato il switch.pm?

+2

possibile duplicato di [Perché il modulo Switch è deprecato in Perl?] (http://stackoverflow.com/questions/2630547/why-is-the-switch-module-deprecated-in-perl) –

risposta

18

È stato sostituito con given/when:

A partire da Perl 5.10, si può dire

use feature "switch"; 

che permette ad una funzione di commutazione che è strettamente basata sulla proposta di Perl 6.

Vedi anche Deprecations in perl5101delta:

I seguenti elementi sono ormai obsoleti.

L'interruttore è difettoso e deve essere evitato. Da perl 5.11.0 in poi, si intende che qualsiasi utilizzo della versione core di questo modulo emetterà un avvertimento e che il modulo verrà eventualmente rimosso dal core (probabilmente in 5.14.0 perl).

Se si dispone di codice legacy che utilizza Switch.pm, è ancora available on CPAN.

4

è possibile installare il pacchetto "Switch" su un sistema Windows al prompt dei comandi con il comando: ppm install Switch

+0

-1 per la risposta duplicata. –

+0

Grazie e funziona per ActivePerl 5.20.2.200 per Windows x86 per me. –