需要帮助使用数组创建条件语句

Need help creating a conditional statement with array

我想创建一个条件语句,在从一行中获取数组元素后,判断数组元素是奇数还是偶数。这是代码:

#! /usr/bin/perl
use warnings;
use strict;
my $numbers='23 45 34 12 9 3 56';
chomp $numbers;
my @getnum= (split(/ /, $numbers));
my $a;
if($getnum[0]>10){
  $a=$getnum[0];
  }
if($a%2==0){
  print $a, " is even";
  }
else{
print $a, " is odd";
}

现在的问题是我只为第一个元素做了这件事。有没有一种方法可以在不为每个元素创建条件语句的情况下对所有元素执行此操作?感谢您的帮助!

您需要使用 for(或 foreach)循环。

for my $n (@numbers) {    # Loops over @numbers, assigning each to $n
    if ( $n % 2 == 0 ) {
        print "$n is even"
    }
}

此外,这很不合常理

my $numbers='23 45 34 12 9 3 56';
chomp $numbers;
my @getnum= (split(/ /, $numbers));

如果你有一个字符串你想用空格分割,在 Perl 中有一种特殊的方法可以做到这一点

split( ' ', $string );

这将在任意空格处拆分(并将去除前导和尾随空格),例如。

my @words = split( ' ', '   one two    three  ' );
# @words is ('one', 'two', 'three')

但是如果您只是在脚本本身中对数字进行硬编码,则可以完全绕过 split 并使用 'quote-words' 语法

my @numbers = qw( 23 45 34 12 9 3 56 );

希望对您有所帮助。