Переменная внутри имени переменной? - PullRequest
1 голос
/ 30 сентября 2019

Я хочу проверить каждую из моих 4 кнопок в цикле для . Тем не менее, я не могу понять, как пройти через них? : - /

if ('$ button'. $ I) , кажется, проблема, но как я могу написать это правильно ??

my $button1 = 0;
my $button2 = 123;
my $button3 = 0;
my $button4 = 0;

for (my $i=1; $i <= 4; $i++) {
   if ('$button'.$i) {
      print"Yes we found positive value!";
   }
  }

Ответы [ 2 ]

4 голосов
/ 30 сентября 2019

Вы пишете это правильно, используя тип массива Perl.

my @button;
$button[1] = 0;
$button[2] = 123;
$button[3] = 0;
$button[4] = 0;

for (my $i=1; $i <= 4; $i++) {
   if ($button[$i]) {
      print"Yes we found positive value!";
   }
}

Можно использовать переменные для создания имени переменной и для доступа к ее значению, но это почти всегда плохая идея.

1 голос
/ 01 октября 2019
my @buttons = (0, 123, 0, 0);
foreach my $button (@buttons) {
    if ($button > 0) {
        # Do something
    }
    else {
        # Do something
    }
}

или

my @buttons = (0, 123, 0, 0);
for (my $i=0; $i<scalar @buttons; $i++) {
    if ($buttons[$i] > 0) {
        # Do something
    }
    else {
        # Do something
    }
}

Или

my @buttons = (0, 123, 0, 0);
foreach (@buttons) {
    if ($_ > 0) {
        # Do something
    }
    else {
        # Do something
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...