2011-06-20 17 views
10

Recuerdo haber visto algunos comentarios en alguna parte que¿Hay alguna razón para usar advertencias antes de usar el uso estricto?

use warnings; 
use strict; 

era preferible (en lugar de use'ing strict primero, ya que estaba acostumbrado a hacerlo). ¿Mi memoria es correcta? ¿Importa el orden y, en caso afirmativo, de qué manera?

+17

Una vez que vi a este tipo en un puente a punto de saltar. Yo dije: "¡No lo hagas!" Él dijo: "No quiero vivir más". Le dije: "¿Qué haces para ganarte la vida?" Él dijo: "Desarrollo software". Dije: "¡Yo también! ¿Escritorio o Web?" Él dijo: "Web". Yo dije: "¡Yo también! ¿Delantero o back-end?" Él dijo: "Back-end". Dije: "¡Yo también! ¿Perl o Java?" Él dijo: "Perl". Dije: "¡Yo también! ¿Vieja escuela o siguiendo el movimiento moderno?" Él dijo: "Perl moderno". Dije: "¡Yo también! ¿Advertencias antes de restricciones en el texto repetitivo o viceversa?" Él dijo: "Advertencias primero". Dije: "¡Muere, hereje!" Y lo empujé. – daxim

+0

filtered from http://en.wikiquote.org/wiki/Emo_Philips – daxim

+3

Perl :: Critic se queja, o al menos está acostumbrado, si no pone advertencias primero. Podría ser donde tomaste la impresión. – Ashley

Respuesta

6

No veo cómo hay un motivo técnico para que el pedido sea significativo. Siempre puse use strict primero como ocurre, ¡sin motivo alguno que no sea lo que siempre he hecho!

+0

Tampoco puedo, pero de alguna manera hay esta memoria persistente de un comentario de alguien en quien debo haber confiado, así que quiero dejar esto para descansar de una vez por todas ;-) –

3

Simple: si hace use strict antes de hacer use warnings, no recibirá una advertencia si está utilizando use strict incorrecto. DUH!

En realidad, siempre lo he hecho de otra forma. El retentivo anal en mí me hizo poner los dos pragmas alfabéticamente. Nunca supe que había una razón para hacerlo de una manera u otra.

Heck, perldoc use muestra la colocación de use strict antes de use warnings, y eso es lo que he visto en la mayoría de los ejemplos oficiales de Perl.

Sospecho que hay un motivo cultural. Originalmente en Perl, para utilizar advertencias, solía utilizar

#! /usr/bin/perl -W 

en la primera línea de su programa. El pragma use strict llegó más tarde, y solo después fue use warnings un pragma. Así, los programas (por un tiempo) se escriben como:

#! /usr/bin/perl -W 

use strict; 

Cuando el parámetro -W pasó de moda, simplemente se añade use warnings justo debajo del tinglado:

#! /usr/bin/perl 

use warnings; 
use strict; 

Una de las cosas que me gustan sobre Stackoverflow es que puedes aprender cosas nuevas que nunca antes habías conocido. Me encantaría ver si alguien tiene una razón real por la que debería ser de una manera y no de otra.

3

Pensé, tal vez, en Perl 5.8.9 y anterior, donde strict no advierte cuando use Strict en los sistemas de archivos insensibles a mayúsculas/minúsculas, teniendo warnings primero, ayudaría. Construí 5.8.9 en mi sistema Windows XP y no:

C:\Temp> cat t.pl 
use warnings; 
use Strict; 

C:\Temp> c:\opt\perl-5.8.9\bin\perl.exe t.pl 

C:\Temp> 

Eso fue un tiro en la oscuridad. Me llevan a concluir que mientras no haya declaraciones intermedias, el orden es inmaterial.

Cuestiones relacionadas