for ($os_arch) { if ("x86_64") { print "OS Arch x86_64 : $os_arch\n"; $os_arch_bits = '64'; print "OS Arch bits 1 : $os_arch_bits\n"; }
is the same as:
for ($os_arch) { if (1) { # <------------------------------------------ print "OS Arch x86_64 : $os_arch\n"; $os_arch_bits = '64'; print "OS Arch bits 1 : $os_arch_bits\n"; }
Therefore, the 1st "if" will always be true. None of the "else" clauses will be evaluated. You don't need the for loop:
if ($os_arch eq "x86_64") { print "OS Arch x86_64 : $os_arch\n"; $os_arch_bits = '64'; print "OS Arch bits 1 : $os_arch_bits\n"; } elsif ($os_arch eq "i386") { print "OS Arch i386 : $os_arch\n"; $os_arch_bits = '32'; print "OS Arch bits 2 : $os_arch_bits\n"; } elsif ($os_arch eq "i686") { print "OS Arch 64 : $os_arch\n"; $os_arch_bits = '32'; print "OS Arch bits 3 : $os_arch_bits\n"; } else { print "OS Arch 64 : $os_arch\n"; $os_arch_bits = 'XX'; print "OS Arch bits 4 : $os_arch_bits\n"; }
See also Switch statements
In reply to Re: simple "if.. elsif.. else.." statements, trying "for.. if.." too
by toolic
in thread simple "if.. elsif.. else.." statements, trying "for.. if.." too
by JBzh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |