Наткнулся на странное про switch в перле и ARGV. Вот простой код.
#!/usr/bin/perl
use strict;
use warnings;
use Switch;
my $rr='bb';
if (exists ($ARGV{-m}))
{
switch ($rr) {
case "bb" { print "bb"; }
else { print "xx"; }
}
}
Ругается
String found where operator expected at ./zz.pl line 9, near «case „bb“»
(Do you need to predeclare case?)
syntax error at ./zz.pl line 8, near ") {"
syntax error at ./zz.pl line 11, near «}»
Execution of ./zz.pl aborted due to compilation errors.
При этом если
#!/usr/bin/perl
use strict;
use warnings;
my $rr='bb';
if (exists ($ARGV{-m}))
{
use Switch;
switch ($rr) {
case "bb" { print "bb"; }
else { print "xx"; }
}
}
То вообще ничего не выводит (??!!)
А если
#!/usr/bin/perl
use strict;
use warnings;
use Switch;
my $rr='bb';
switch ($rr) {
case "bb" { print "bb"; }
else { print "xx"; }
}
То работает как надо.
Где я туплю??