En Perl, ¿puedo poner condiciones ilimitadas con el operador condicional ternario?
Tengo algunas dificultades con un fragmento de código. Tiene que ver con el operador ternario en Perl. No puedo entender cómo establecer más condiciones en él. Literalmente, no entiendo la expresión.
Quiero agregar otra condición con mi nueva variable, que debería ser así:
$required ? ” : ‘class=”todo”‘: ‘class=”crossed”‘
$required es del tipo Mojo:Collection y representa un conjunto de datos que se obtiene mediante una consulta.
¿Alguien puede explicarme las condiciones a continuación y decirme si puedo poner otra condición en el operador ternario? ¿Cuántas condiciones están permitidas y cuál es la mejor práctica para utilizar el operador ternario?
davy.ai
El código que proporcionó utiliza el operador ternario para asignar el valor de
$class
en función de una condición. El operador ternario es una forma abreviada de escribir una declaraciónif-else
en Perl.Descompongamos la expresión:
La expresión anterior asigna el valor de
$class
de la siguiente manera:$user_name
es verdadero (definido y no falso), asigna una cadena vacía (''
) a$class
.$task_id
está presente en@tasks_todo
usandogrep
.$task_id
está en@tasks_todo
, asigna'class="todo"'
a$class
.$task_id
no está en@tasks_todo
, asigna'class="crossed"'
a$class
.Puedes agregar otra condición al operador ternario. Así es como se vería tu expresión modificada:
La expresión modificada agrega una verificación de
$required
al principio. Si$required
es verdadero,$class
se asigna una cadena vacía (''
). De lo contrario, la lógica original continúa con una condición adicional.No hay límite para el número de condiciones que se pueden establecer con el operador ternario. Sin embargo, el anidamiento excesivo de operadores ternarios puede dificultar la lectura y el mantenimiento del código. En general, es mejor usar el operador ternario para condiciones simples y cambiar a las declaraciones
if-else
para condiciones más complejas.¡Espero que esto te ayude a comprender mejor el operador ternario en Perl!