Тернарный operator ?: w Perl

W języku programowania Perl istnieje tylko jeden operator, który pracuje z trzema операндами. Тернарный operator, to 2 znaki, ?:, przy czym te znaki są rejestrowane nie obok, a między операндами.

Тернарный operator zwraca albo drugi, albo trzeci argument w zależności od wartości pierwszego operandu. Jeśli pierwszy argument jest prawdą, to wtedy wraca drugi argument, jeśli pierwszy argument — to kłamstwo, to wtedy wraca trzeci argument (więcej o prawdę i kłamstwo w Perlu).

Oto przykład:

▶ Run
#!/usr/bin/perl

my $var = 1 ? 100 : 200;

print $var;

Program wypisze na ekran liczba 100.

  • Najpierw zapisywany jest pierwszy argument, w naszym przykładzie jest to liczba 1
  • Potem idzie symbol ?
  • Potem nagrywa drugi argument, 100
  • Potem idzie symbol :
  • Potem nagrywa trzeci argument, 200

Pierwszy argument 1 — to prawda, dlatego wynikiem operatora jest drugi argument, tj. liczba 100. Właśnie ta wartość jest przypisana do zmiennej i wyświetla na ekranie.

Zamiast тернарного operatora można korzystać z if-else. Oto program, który działa tak jak i poprzednia:

▶ Run
#!/usr/bin/perl

my $var;

if (1) {
    $var = 100;
} else {
    $var = 200;
}

print $var;

Czasami wygodniej jest korzystać z тернарный operator, a czasami konstrukcję if-else.

Inne artykuły