in reply to simple "if.. elsif.. else.." statements, trying "for.. if.." too
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: simple "if.. elsif.. else.." statements, trying "for.. if.." too
by JBzh (Initiate) on May 18, 2012 at 13:43 UTC | |
by jwkrahn (Abbot) on May 18, 2012 at 15:05 UTC | |
by tobyink (Canon) on May 18, 2012 at 14:42 UTC |