use warnings; use strict; use RPi::Pin; use RPi::Const qw(:all); my $curtain_relay_pin = 5; my $pin = RPi::Pin->new($curtain_relay_pin); $pin->mode(OUTPUT); if (...) { $pin->write(LOW); } elsif ($pin->read == LOW) { $pin->write(HIGH); }