#!./perl
print
"1..18\n"
;
sub
foo1 {
$_
=
shift
(
@_
);
$a
= 0;
until
(
$a
++) {
next
if
$_
eq 1;
next
if
$_
eq 2;
next
if
$_
eq 3;
next
if
$_
eq 4;
return
20;
}
continue
{
return
$_
;
}
}
print
foo1(0) == 20 ?
"ok 1\n"
:
"not ok 1\n"
;
print
foo1(1) == 1 ?
"ok 2\n"
:
"not ok 2\n"
;
print
foo1(2) == 2 ?
"ok 3\n"
:
"not ok 3\n"
;
print
foo1(3) == 3 ?
"ok 4\n"
:
"not ok 4\n"
;
print
foo1(4) == 4 ?
"ok 5\n"
:
"not ok 5\n"
;
print
foo1(5) == 20 ?
"ok 6\n"
:
"not ok 6\n"
;
sub
foo2 {
$_
=
shift
(
@_
);
{
last
if
$_
== 1;
last
if
$_
== 2;
last
if
$_
== 3;
last
if
$_
== 4;
}
continue
{
return
20;
}
return
$_
;
}
print
foo2(0) == 20 ?
"ok 7\n"
:
"not ok 7\n"
;
print
foo2(1) == 1 ?
"ok 8\n"
:
"not ok 8\n"
;
print
foo2(2) == 2 ?
"ok 9\n"
:
"not ok 9\n"
;
print
foo2(3) == 3 ?
"ok 10\n"
:
"not ok 10\n"
;
print
foo2(4) == 4 ?
"ok 11\n"
:
"not ok 11\n"
;
print
foo2(5) == 20 ?
"ok 12\n"
:
"not ok 12\n"
;
sub
foo3 {
$_
=
shift
(
@_
);
if
(/^1/) {
return
1;
}
elsif
(/^2/) {
return
2;
}
elsif
(/^3/) {
return
3;
}
elsif
(/^4/) {
return
4;
}
else
{
return
20;
}
return
40;
}
print
foo3(0) == 20 ?
"ok 13\n"
:
"not ok 13\n"
;
print
foo3(1) == 1 ?
"ok 14\n"
:
"not ok 14\n"
;
print
foo3(2) == 2 ?
"ok 15\n"
:
"not ok 15\n"
;
print
foo3(3) == 3 ?
"ok 16\n"
:
"not ok 16\n"
;
print
foo3(4) == 4 ?
"ok 17\n"
:
"not ok 17\n"
;
print
foo3(5) == 20 ?
"ok 18\n"
:
"not ok 18\n"
;